IE7不完全支持javascript的insertBefore方法吗?

时间:2011-03-02 19:14:08

标签: javascript internet-explorer-7 ie7.js

我有以下代码,可以在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不支持这种方法以及其他浏览器吗?

由于

2 个答案:

答案 0 :(得分:4)

我没有解决这个问题,而是弄清楚我的代码出了什么问题:

我使用的是一个广泛的框架集(哎呀!!)当我进行text_node = document.createTextNode()调用时,我没有在我的应用程序所在的框架中执行此操作。

我通过显式调用框来创建对象来修复它:

var text_node = MainFrame.child_frame.WhySoManyFrames.document.createTextNode(p1);

执行此操作后,insertBefore方法完美无缺!

希望这有助于任何人看到这个问题 - 我知道这花了我很长时间并且很多挫折要弄明白!

答案 1 :(得分:1)

IE7支持JavaScript“InsertBefore”功能。请记住,只有在页面完全加载时才能使用此功能

Details