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

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

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

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

5 ответов


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

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

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

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

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


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

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

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

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

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


нет.

во-первых, загрузка библиотеки 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 в meta означает выполнить обновление немедленно, поэтому скрипт никогда не будет выполнен. Если вы разместили сценарий перед meta, это не будет работа, потому что не было бы элемента DOM еще ссылаться.


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

$('meta').prop('content', '99999999');

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

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