2010-10-21 71 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中,但不被瀏覽器識別。