我有下面的代码,它可以在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