我有下面的代碼,它可以在Chrome,IE8和FF中完美工作。但是,當我使用IE7測試時出現錯誤。有人知道這裏發生了什麼嗎?IE7不完全支持JavaScript的insertBefore方法嗎?
function do_replace(s, p1,p2,p3,child_node,syn_text) {
reg = new RegExp('[h\|H][1-7]');
if(p1.length>0){ //this might not be necessary
//create textnode
var text_node = document.createTextNode(p1);
child_node.parentNode.insertBefore(text_node,child_node); //errors out here in IE7
}
代碼錯誤在最後一行IE7給出一個「htmlfile:無效的參數」。當我通過調試器查看代碼時發生錯誤。 child_node,parentNode和text_node在運行此腳本時似乎與Firefox和Chrome相同。
任何想法?或者IE7不支持這種方法以及其他瀏覽器?
謝謝
根據MS,IE6 +應該支持insertBefore。 http://msdn.microsoft.com/en-us/library/ms536454(v=vs.85).aspx您是否看到過他們的評論:「插入第一個子節點時,不要指定oChildNode參數。如果子節點已經存在並且您不指定oChildNode參數,則oNewNode將成爲父對象的最後一個子項。「 – Detect 2011-03-02 19:21:15