Можно ли динамически удалять мета-тег обновления из заголовка с помощью jQuery? - PullRequest
6 голосов
/ 16 сентября 2011

У меня есть метатег в Заголовке как этот ..

<meta http-equiv='refresh' content='0;url=http://stackoverflow.com/'>

возможно ли удалить его динамически с помощью jQuery?

Ответы [ 5 ]

6 голосов
/ 16 октября 2011

Чтобы реализовать другое поведение при включенной поддержке сценариев, вы должны включить meta refresh между <noscript> тегами, например

<noscript>
    <meta http-equiv='refresh' content='0;url=http://stackoverflow.com/'>
</noscript>

, и реализовать желаемую функциональность после загрузкиДОМ.Что-то вроде:

$(window).load(function() {
    // here
})

Подтверждено работа над последней версией Firefox

5 голосов
/ 16 сентября 2011

Нет.

Во-первых, загрузка библиотеки jQuery займет слишком много времени, поэтому вам придется делать это с прямым Javascript, если что-нибудь.даже если у мета есть идентификатор, и вы сразу после него разместите самый простой фрагмент JS:

<meta id="stopMe" http-equiv='refresh' content='0;url=http://stackoverflow.com/'>
<script>
    var meta = document.getElementById('stopMe');
    meta.parentNode.removeChild(meta);
</script>

, это все равно будет слишком поздно, поскольку content=0 в мета означает немедленное обновление, поэтому скриптникогда не будет казнен.Если вы поместите скрипт перед мета, он не будет работать, потому что не было бы элемента DOM для ссылки.

2 голосов
/ 16 сентября 2011

Насколько я понимаю, это не имеет никакого смысла. Предполагается, что заголовок, который вы показываете, должен вызвать немедленное перенаправление, возможно, до того, как какой-либо JavaScript будет выполнен.

Если вы можете использовать jQuery для его обновления, вы также можете сделать это:

location.href = "http://new.target";

Я не знаю, как это будет выполняться при наличии метатега - будет ли он всегда бить метатег, всегда проигрывать или вызывать противоречивые результаты в браузерах

Может быть, расскажите нам, какова ваша ситуация и почему вам нужно это сделать.

0 голосов
/ 18 августа 2017

Что сработало для меня, это не удалить его, а изменить значение на очень большое число, тогда оно никогда не обновится, как показано ниже:

$('meta').prop('content', '99999999');
0 голосов
/ 16 сентября 2011

Попробуйте это:

$('meta[http-equiv="refresh"]').remove();
...