是否可以使用jQuery从头部动态删除元刷新标记?

时间:2011-09-16 06:33:12

标签: jquery meta-tags

我在Header中有meta标签..

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

是否可以使用jQuery动态删除它?

5 个答案:

答案 0 :(得分:6)

为了在启用脚本支持时实现不同的行为,您应该在<noscript>标记之间包含元刷新,如此

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

并在加载DOM后实现所需的功能。有点像:

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

确认使用最新的Firefox版本

答案 1 :(得分:5)

首先,加载jQuery库会花费太长时间,所以你必须使用直接的Javascript(如果有的话)。

其次,即使meta有一个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>

它仍然为时已晚,因为元中的content=0意味着立即执行刷新,因此脚本永远不会被执行。如果您将脚本放在元素之前它将无法工作,因为没有DOM元素可供引用。

答案 2 :(得分:2)

据我所知,这没有任何意义。您显示的标题应该导致立即重定向,可能在任何JavaScript执行之前。

如果你可以使用jQuery来更新它,你可以这样做:

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

我不知道如何使用Meta标签执行此操作 - 它是否总是会击败Meta标签,总是会丢失它,或者导致浏览器的结果不一致。

或许告诉我们您的情况到底是什么以及为什么需要这样做。

答案 3 :(得分:-1)

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

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

答案 4 :(得分:-2)

试试这个:

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