使用jQuery动态删除头部的meta refresh标签是否可行?

8
我在头部有一个类似这样的标签..
<meta http-equiv='refresh' content='0;url=http://stackoverflow.com/'>

使用jQuery动态删除它是否可行?
5个回答

7
为了在启用脚本支持时实现不同的行为,您应该在<noscript>标签之间包含meta refresh,就像这样。
<noscript>
    <meta http-equiv='refresh' content='0;url=http://stackoverflow.com/'>
</noscript>

在加载DOM后实现所需的功能。大致如下:

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

已确认可在最新的Firefox版本上运行


5

编号。

首先,加载jQuery库需要花费太长时间,所以如果有必要,你需要使用纯JavaScript来实现。

其次,即使元素具有id属性,而你在它后面放置了最简单的JS代码片段:

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

即使在 meta 标签中设置了 content=0,也已经太晚了,因为这意味着立即执行刷新,所以脚本永远不会被执行。如果将脚本放在 meta 标签之前,它将无法工作,因为还没有 DOM 元素可供引用。


2
据我所见,这没有任何意义。您展示的标题应该引起立即重定向,可能在执行任何JavaScript之前。
如果您可以使用jQuery进行更新,那么您可以这样做:
location.href = "http://new.target";

我不知道有了标签后执行的情况-它是总是会胜过标签,总是输给它,还是在不同浏览器中导致结果不一致。

也许您可以告诉我们您的具体情况,以及为什么需要这样做。


-1

对我有用的方法不是将其删除,而是将值更改为一个非常大的数字,然后它将永远不会刷新,如下所示:

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

-1

试试这个:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接