【发布时间】:2011-03-02 19:14:08
【问题描述】:
我有以下在 Chrome、IE8 和 FF 中完美运行的代码。但是,当我用 IE7 测试它时,我得到一个错误。有人知道这里发生了什么吗?
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。 msdn.microsoft.com/en-us/library/ms536454(v=vs.85).aspx有没有看到他们的评论:“插入第一个子节点时不要指定oChildNode参数。如果子节点已经存在,而你没有指定oChildNode参数,则oNewNode成为父对象的最后一个子节点。”跨度>
标签: javascript internet-explorer-7 ie7.js