2013-04-05 92 views
0

所以這是一個奇怪的 - 但我必須解決。DOM加載之前填充元標記

我根據表單是否存在來填充元標記。我在.ready()函數中使用了表單ID,因爲jQuery在DOM之前(在頭部)。

這是一個分析腳本,腳本的事件在腳註中。腳本在標籤填充之前觸發並且沒有數據正在發送。不幸的是,我無法修改這個腳本。

是否可以暫停表單的.ready()事件上的DOM加載?

var wtURL = window.location.pathname; 
var wtURLParse = wtURL.split('/'); 
var appType = '1'; 

if (wtURLParse[3] == 'app') { 
    var appType = '2'; 
} 
else { 
    var appType = '1' 
} 


document.write('<META name="placeholder">'); 


$('#createUsername').ready(function(e) { 
    e.preventDefault; 
    var isForm = $('#createUsername').length; 
console.log(isForm); 

    if ($('#createUsername').length == 1) { 
     $('META[name="placeholder"]').after('<META NAME="junk" CONTENT="'+ appType +' stuff">\n<META NAME="junk2" CONTENT="stuff2">'); 
     $('META[name="placeholder"]').remove(); 
    } 
    else { 
     if ($('#createUsername').length == 0) { 
      $('META[name="placeholder"]').after('<META NAME="junk" CONTENT="'+ appType +' stuff">\n<META NAME="junk2" CONTENT="stuff2">\n<META NAME="junk3" CONTENT="stuff3">'); 
      $('META[name="placeholder"]').remove(); 
     } 
    } 
}); 

回答

1

這似乎是一個壞主意。

<meta>標籤打算在文檔的頭部。必須在文檔頭部同步執行JavaScript,才能正確標記document.write標籤。這種同步執行會阻止頁面的呈現,並且對於性能來說很糟糕。

Meta tags - Google Webmaster Tools Help