这是我试图访问的iframe:
<div class="mceBody" id="additionalTxt_b">
<iframe frameborder="0" id="additionalTxt_f" src='javascript:""' class="punymce"/>
</div>
Run Code Online (Sandbox Code Playgroud)
使用此行:
frames['additionalTxt_f'].document.getElementsByTagName("body")[0].innerHTML
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我从firebug得到"frames.additionalTxt_f未定义".我在其他页面上有类似的iframe(由punyMCE插件动态创建),它们工作得很好.IE7/8也可以访问这个iframe.
刚刚完全失去了.关于为什么Firefox无法找到iframe的任何想法?
该window.frames[]数组由[i]帧的name属性(也称为帧目标)索引.id不能依赖它也可以工作 - 虽然它可能在IE <8中,它通常认为名称和ID是同一个东西.
如果要通过ID访问框架的内容,请使用DOM Level 2 HTML contentDocument属性而不是old-school("DOM Level 0")frames数组:
document.getElementById('additionalTxt_f').contentDocument.body.innerHTML
Run Code Online (Sandbox Code Playgroud)
...但是,为了兼容IE <8,你还必须添加一些后备,因为它不支持contentDocument:
var f= document.getElementById('additionalTxt_f');
var d= f.contentDocument? f.contentDocument : f.contentWindow.document;
d.body.innerHTML
Run Code Online (Sandbox Code Playgroud)
所以这取决于你认为哪种方法不那么难看:额外的脚本工作,或者只是使用name属性.
| 归档时间: |
|
| 查看次数: |
4989 次 |
| 最近记录: |