Using Javascript to override or disable meta refresh tag Using Javascript to override or disable meta refresh tag ajax ajax

Using Javascript to override or disable meta refresh tag


I've found that the noscript tag works quite nicely for this. For example, you can place this just after you close the head element:

<noscript>    <meta http-equiv="refresh" content="5;URL=http://www.example.com"></noscript>

No need to remove the meta tag with script, since a browser that has script support will ignore everything inside the noscript element.


You cannot override meta refresh tag with JavaScript.

However you can do this

Suppose your page is at ->

http://example.net/mike.htmlPut the following code there->

<script type="text/javascript">window.location = 'http://example.net/mike/for_Those_With_JavaScript_Enabled.html';</script>


Unfortunately, from @bluesmoon's answer, manipulating the DOM does not work anymore.

The workaround is to retrieve the original markup, find and replace the meta refresh element, and then write the new document with the replaced markup.

I am not sure how to retrieve the original markup using JavaScript except for sending an additional request using XMLHttpRequest.

In Opera, here is what I am using:

Disable meta refresh 1.00.js:

// ==UserScript==// @name Disable meta refresh// @version 1.00// @description Disables meta refresh.// @namespace https://stackoverflow.com/questions/3252743/using-javascript-to-override-or-disable-meta-refresh-tag/13656851#13656851// @copyright 2012// @author XP1// @homepage https://github.com/XP1/// @license Apache License, Version 2.0; http://www.apache.org/licenses/LICENSE-2.0// @include http*://example.com/*// @include http*://*.example.com/*// ==/UserScript==/* * Copyright 2012 XP1 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *//*jslint browser: true, vars: true, maxerr: 50, indent: 4 */(function (window, XMLHttpRequest) {    "use strict";    if (window.self !== window.top) {        return;    }    window.stop();    var uri = window.location.href;    var request = new XMLHttpRequest();    request.open("GET", uri, false);    request.send(null);    if (!(request.readyState === 4 && request.status === 200)) {        return;    }    var markup = request.responseText;    markup = markup.replace(/<meta http-equiv="refresh".*\/?>/gi, "");    var document = window.document;    document.open();    document.write(markup);    document.close();}(this, this.XMLHttpRequest));

Opera also has a built-in feature that disables meta refreshes. No need for JavaScript.

  • Right click on webpage > Edit Site Preferences... > Network > Disable "Enable automatic redirection" > OK.