Why does Chrome not redirect using meta refresh

jeph perro picture jeph perro · Mar 21, 2014 · Viewed 26.7k times · Source

An application that I work with has a PL/SQL package that creates a page and uses a function to create META tags.

It creates a webpage with a META tag exactly like this :

 <META HTTP-EQUIV="Refresh" NAME="Refresh" CONTENT="1; URL=PaymentSubmit.html">

The problem is that Chrome does not like the NAME="Refresh" attribute. It does not redirect the page, although it does redirect properly in IE and Firefox

If I remove the NAME attribute, so that it looks like this it works in all browsers :

 <META HTTP-EQUIV="Refresh" CONTENT="1; URL=PaymentSubmit.html">

What's going on here? I can't find a W3C standard for META redirect, so does every browser make up it's own rules ? I'm not sure if it ever worked in Chrome, but since I never heard any bug reports I assume it used to work in Chrome.

Anyone have a similar problem ?

Thanks

Answer

tjati picture tjati · Mar 24, 2014

If you check the w3c wiki you can find the following quote:

Exactly one of the name, http-equiv, and charset attributes must be specified.

It mean's it is not valid html that both - name and http-equiv attributes are set.

Read this W3C's HTML and XHTML Techniques test on meta refresh:

Find all meta elements in the document. For each meta element, check if it contains the attribute http-equiv with value "refresh" (case-insensitive) and the content attribute with a number greater than 0 followed by ;'URL=anyURL' (where anyURL stands for the URI that should replace the current page).

The behavouir of the other browsers is not wrong, but chrome is more strict.

More details about the correct behavouir - and the valid reference - are available at http://www.w3.org/TR/html5/document-metadata.html#attr-meta-http-equiv-refresh