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

DBT*_*tor 6 jquery meta-tags

我在标题中有元标记..

<meta http-equiv='refresh' content='0;url=http://stackoverflow.com/'>
Run Code Online (Sandbox Code Playgroud)

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

mgo*_*ois 6

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

<noscript>
    <meta http-equiv='refresh' content='0;url=http://stackoverflow.com/'>
</noscript>
Run Code Online (Sandbox Code Playgroud)

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

$(window).load(function() {
    // here
})
Run Code Online (Sandbox Code Playgroud)

确认使用最新的Firefox版本


mVC*_*Chr 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>
Run Code Online (Sandbox Code Playgroud)

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


Pek*_*ica 2

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

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

location.href = "http://new.target";
Run Code Online (Sandbox Code Playgroud)

我不知道如何在存在元标记的情况下执行此操作 - 它是否总是会击败元标记,总是会输给它,或者导致跨浏览器的结果不一致。

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