比如一iframe这样<iframe name="puname" frameborder="0" scrolling="no" width="80px" height="12px"></iframe>
js代码有一段var name = frames["puname"].document.getElementsByTagName("center").innerHTML;
有一form
<form name="form_existing" action="genuis.fcgi" method="post" target="puname">
<input type="hidden" name="existing" value="">
</form>为什么var name = frames["puname"].document.getElementsByTagName("center").innerHTML;这句js代码运行不了?

解决方案 »

  1.   

    1:document.getElementsByTagName("center")这个取到的是一个数组,并不是单一的元素
    <center>1</center>
    <center>2</center>
    document.getElementsByTagName("center")[0].innerHTML;//这个就是取到了第一个center标签,将[0]换成[1]就是第二个center标签2:frames["puname"].document存在兼容性问题
    <iframe id="puname" frameborder="0" scrolling="no" width="80px" height="12px"></iframe>document.getElementById("puname").contentWindow.document.getElementsByTagName('center')[0].innerHTML
      

  2.   

    我打漏了一个[0]
    document.getElementById("puname").contentWindow.document.getElementsByTagName('center')[0].innerHTML这样写还是不行哦?
      

  3.   

    你如果在父页面中直接那么用,那么iframe有可能还没有加载完成!你可以丢进
    window.onload=function(){
        var name=document.getElementById("puname").contentWindow.document.getElementsByTagName('center')[0].innerHTML;
    }
      

  4.   

    window.onload=function()可以解释一下这句的作用吗?我是新手
      

  5.   

    window.onload=function(){
        //这里面的代码会在当前页面中所有元素均已加载完成后才执行
    }
      

  6.   

    不止一个iframe啦,所以有没有其他方法啊?
      

  7.   

    用法有什么不同??对指定的iframe直接套用就成了呀
      

  8.   

    1:首先,那样使用去获取一个iframe中指定元素是没有问题的
    2:其次,要是有问题,那肯定是你其他应用上出了问题了自己参考着处理吧
      

  9.   

    我试了很多次,按你说的那样的确取不了innerHTML,其他地方没问题的,都测试过了,我用的是firefox的
      

  10.   

    顺便问一下,document.form_existing.existing.value="me";这样写有错吗?
      

  11.   

    父页面:
    <script type="text/javascript">
    window.onload=function(){
        var na=document.getElementById("puname").contentWindow.document.getElementsByTagName('center')[0].innerHTML
        alert(na)
    }
    </script>
    <iframe src="1.htm" id="puname"></iframe>子页面:1.htm
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>测试</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    </head>
    <body>
        <center>111</center>
    </body>
    </html>
    和你用FF浏览器没什么关系,那种取值方式是测试过兼容性的。至少你说的FF是绝对可以的
    我不知道你的测试环境,但有两点你确认
    1:父页面中的iframe是用id命名的:id="puname"
    2:子页面中是center标签,不是name=center,不是id=center 而是在body中:<center>111</center>
      

  12.   

    测试清楚了,按你的方法可以,是这句出问题了document.form_existing.existing.value="me";如果我要改value那么要怎么写?
      

  13.   

    唉,如果你的existing是在iframe中,且是一个元素的id的话,使用下面的吧
    document.getElementById("puname").contentWindow.document.getElementById('existing').value='me';这不就是照抄一遍么Lz,建议你还是多看看js基础的东西吧。磨刀不误砍柴工呀,你这样浪费的时间更多呢
      

  14.   

    existing是form_existing里的变量
      

  15.   

    变量??
    form_existing是一个表单吧?
    existing是表单中的一个输入框吧?
      

  16.   

    这样试试var iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
    var name = iframeDoc.getElementsByTagName("center")[0].innerHTML;
      

  17.   


    你怎么还在纠结这个问题??如果你的existing是在iframe中,且是一个元素的id的话,使用下面的吧
    document.getElementById("puname").contentWindow.document.getElementById('existing').value='me';我在14楼不是已经回复了么?
      

  18.   

    form_exsiting不是在iframe里的,要怎么写?
      

  19.   

    我看你的existing是name命名的,使用下面的吧
    document.getElementsByName("existing")[0].value='me';
    呃,Lz,这是js中再基础不过的东东了。建议你还是好好的看看基础的东西吧。比如:w3school 在线教程就可以边看边练磨刀不误砍柴工,这么