К сожалению, из ответа @ bluesmoon манипулирование DOM больше не работает.
Обходной путь - извлечь исходную разметку, найти и заменить элемент метаобновления, а затем написать новый документ с замененной разметкой.
Я не уверен, как получить исходную разметку с помощью JavaScript, за исключением отправки дополнительного запроса с помощью XMLHttpRequest
.
В Opera вот что я использую:
Disable meta refresh 1.00.js
:
// ==UserScript==
// @name Disable meta refresh
// @version 1.00
// @description Disables meta refresh.
// @namespace /3227985/ispolzovanie-javascript-dlya-pereopredeleniya-ili-otklycheniya-meta-obnovleniya
// @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 также имеет встроенную функцию, которая отключает мета-обновления. Нет необходимости в JavaScript.
- Щелкните правой кнопкой мыши веб-страницу> Изменить настройки сайта ...> Сеть> Отключить «Включить автоматическое перенаправление»> ОК.