论坛首页 Web前端技术论坛

日积月累-----Iframe

浏览 8525 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-05-30  
小问题引来大思考

制作类似于fck编辑器,发现里面又到iframe,发现原来iframe是这样用的,真的适合自己日积月累啊!呵呵
1、调用
调用不是document.getElementById('fck'),而是,window.frames['f'],以前没有接触,实在汗。。。。
2、可编辑状态:
window.frames['f'].document.designMode='on';,居然还可以编辑,又是汗。。。
3、获取内容:
var b=window.frames['f'].document.getElementsByTagName('body')[0];
alert(b.innerHTML);
4、问题:
function fck()
{
//	document.getElementById('fck').document.designMode='on';
window.frames['f'].document.designMode='on';
window.frames['f'].document.canHaveHTML=true;
try{
var b=window.frames['f'].document.getElementsByTagName('body')[0];
//alert(b);
alert(b.innerHTML);
}catch(e)
{
}
}
</script>

下面用button要点击二次后,才能正确,实在不知为何,只能在窗体加载时先调用一次如:
<body onload="fck()">
<iframe id="f" src="context.html"></iframe>
<input type="button" onclick="fck()" value="获取frame的值"/>
</body>

这样解决了,但是怪怪的,各位仁兄有没有更高的办法呢。。。
同时,非IE获取iframe是不是:window.frames["frameName"].document?
高手莫笑。。。。。。
  • iframe.rar (958 Bytes)
  • 描述: iframe细节
  • 下载次数: 223
   发表时间:2008-05-30  
要注意IE和FF中对IFRAME访问的不同。
0 请登录后投票
   发表时间:2008-05-30  
stworthy 写道
要注意IE和FF中对IFRAME访问的不同。

谢谢提醒,现在正在考虑这个问题,呵呵
0 请登录后投票
   发表时间:2008-05-30  
仁兄,怎么解决在FF中获取Iframe啊?
0 请登录后投票
   发表时间:2008-06-02  
不能跨域,自娱自乐?
0 请登录后投票
   发表时间:2008-06-02  
IE可以用document.frames["frameName"]
FF必须用document.getElementById("frameName").contentWindow
0 请登录后投票
   发表时间:2008-06-02  
stworthy 写道
要注意IE和FF中对IFRAME访问的不同。



一样的 只要用name来访问就行了 如window.top.ifrm.document 不要用括号
0 请登录后投票
   发表时间:2008-06-17  
不管哪个浏览器访问iframe,直接frames['framename'].document,就可以了吧,至少我一直这么写的没有发现有什么问题;

至于跨域的问题可以让iframe中的document.domain和父页面中的document.domain设置一样;

IE下将页面设置成可编辑状态是document.body.contentEditable = true;
非IE的浏览器是document.designMode="on";
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics