网站要用document.getElementsByTagName('iframe')[0].src="XXXX";把网页里唯一的一个IFRAME的SRC重新指向,本来是成功的,但后来因特殊需要,把在<body></body>下的几个JS文件调用换到了<head></head>下:结果getElementsByTagName就失效了,有哪位大侠能帮看看该怎么解决?

解决方案 »

  1.   

    执行时iframe未加载(因为js在iframe前面)把该句代码写成
    window.onload = function(){
        document.getElementsByTagName('iframe')[0].src="XXXX";
    }
    就行了
      

  2.   

    浏览器加载以及执行顺序为从上到下。
    可以指定iframe的onload事件
    funciton changeSrc()
    {
       document.getElementsByTagName('iframe')[0].src="XXXX";
    }<iframe onload="changeSrc();"/>或者在页面加载之后触发某种事件来执行。
      

  3.   

    把它设置为window.onload事件,....
      

  4.   

    这个肯定是你的js使用它的时候,它还没有加载。你要想办法在iframe加载之后再使用它。
    建议方法:
    1.把事件程序加到iframe的onload事件上
    2.把事件程序加到window的onload上
    3.在事件处理程序上设置延时处理,选取一个合适的时间再处理
      

  5.   

    把要执行的js放到onload事件里面
      

  6.   

    加载head的js时运行了
    document.getElementsByTagName('iframe')[0].src="XXXX";
    而iframe未加载到浏览器,所以会出错。
    可以等页面加载完再运行就可以了window.onload = function(){
        document.getElementsByTagName('iframe')[0].src="XXXX";
    }
      

  7.   

    多谢各位,试了很多方法,后来发现原因是引用了另一个域名的JS,所以上传到服务器就无效了,只要把JS文件放到同一个服务器就好了