2010-10-21 70 views
3

我正在为javascript做一些示例;他们不是真的可用。这很有趣 - 它适用于Chrome(以及其他使用webkit)和Safari。那么有人可以提出任何理由说明它在我测试过的其他浏览器中不起作用吗?一些浏览器无法识别通过Javascript添加的元标记

一个可能的解释是,其他浏览器在页面加载后不读取元标记,或者没有读取新添加的元标记。

if (document.createElement) { 
    var meta = document.createElement('meta'); 
    var metaContent = '2; URL=http://localhost/new.html'; 
    meta.setAttribute('http-equiv', 'refresh'); 
    meta.setAttribute('content', metaContent); 
    document.getElementsByTagName('head')[0].appendChild(meta); 
    } 
+1

嗯。我猜大多数浏览器在页面呈现后都不会期望新的元标记。有趣。 +1 – 2010-10-21 20:53:50

+0

也许,但标题标签可以更改,所以浏览器期望在头部有所改变。 – Bakudan 2010-11-06 14:40:41

+0

我发现有一个选项“允许元刷新”,但即使启用脚本也不起作用。 http://helpdeskgeek.com/how-to/disable-meta-refresh-ie-8/ – Bakudan 2010-11-08 17:06:41

回答

3

大多数浏览器在处理任何Javascript之前都会读取元标记。您可以按照您编码的方式注入新的元标记,但浏览器本身不会对新标记执行任何操作。虽然新的元代码可用于注入后调用的页面上运行的其他代码。

0

当页面加载时,Meta标签必须位于前512个字符中。如果他们不是,他们将留在DOM中,但不被浏览器识别。