`
lixinlixin2008
  • 浏览: 150083 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

可编辑 iframe, removeChild时, 非IE浏览器, 可编辑状态消失

阅读更多
<!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>

<script>
function f1(){
    document.body.removeChild(do01);
}
function f2(){
    document.body.appendChild(do01);
    
//  第一种方法
    meifr01.contentWindow.document.designMode="On";
				meifr01.contentWindow.document.open();
				meifr01.contentWindow.document.write('<html><head><style>html,body{margin:5px;font:12px/1.231 arial;cursor:text;}</style></head><body id="easyrt_body"></body></html>');
				meifr01.contentWindow.document.close();

//    第二种方法,估计得iframe load之后
//    setTimeout(f3,0);
    
}
function f3(){
    meifr01.contentWindow.document.designMode="On";
}

//http://www.v-ec.com/dh20156/code/easyrt/easyrt.html
</script>
</head>


<body onload=init()>
这个bug是这样的,我们常常会用iframe做html编辑器,当iframe离开文档以后,再append进来,这个时候,非IE浏览器下iframe会变成不可编辑的,并且内容全部丢失,
不可编辑这个问题需要重新设置一下iframe,内容丢失就没办法了...
<div id="d001"><iframe id="ifr1"></iframe></div>
<input type="button" value="none" onclick="f1()" />
<input type="button" value="display" onclick="f2()" />
<input type="button" value="edt" onclick="f3()" />
</body>

</html>

<script>
function init(){
    window.do01 = document.getElementById("d001");
    window.meifr01 = document.getElementById("ifr1");
    meifr01.contentWindow.document.designMode="On";
}
</script>





补充,在非IE下,重新appendChild一下iframe,  win和doc都变了, iframe的unload事件也会被触发

by: 天堂左我往右
0
0
分享到:
评论
2 楼 lixinlixin2008 2009-11-04  
当<iframe src="javascript:;"></iframe>时,设置designMode="On";  也无法重新启用iframe可编辑模式...



另外一个问题:
引用以前的iframe的document对象,例如 var _doc = meifr01.contentWindow.document;  然后将iframe移除文档,再appendChild进来,
alert(_doc==meifr01.contentWindow.document)
结果:false


appendChild一下,document不同了...
1 楼 lixinlixin2008 2009-11-02  
发现还有一种情况下这样设置也没有用...还没找到是什么原因...

相关推荐

    DOM节点删除函数removeChild()用法实例

    主要介绍了DOM节点删除函数removeChild()用法,实例分析了removeChild()函数实现结点删除的技巧,需要的朋友可以参考下

    JavaScript的removeChild()函数用法详解

    removechild 函数可以删除父元素的指定子元素,通过本文给大家介绍javascript的removeChild()函数用法,对js removechild函数相关知识感兴趣的朋友一起学习吧

    js removeChild 方法深入理解

    下面小编就为大家带来一篇js removeChild 方法深入理解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    javascript移出节点removeChild()使用介绍

    removeChild(a)是用来删除文档中的已有元素 参数a:要移出的节点 代码如下: ”guoDiv”&gt; &lt;span&gt;1&lt;/span&gt; &lt;span&gt;2&lt;/span&gt; &lt;span&gt;3&lt;/span&gt; &lt;/div&gt; var oDiv = document.getElementById(“guoDiv”); var firsChild = ...

    javascript删除元素节点removeChild()用法实例

    本文实例讲述了javascript删除元素节点removeChild()用法。分享给大家供大家参考。具体分析如下: 操作DOM节点的方法:removeChild(),移除子节点,那么可以变通一下来实现移除指定的节点,我们可以先去找到要删除...

    javascript移出节点removeChild()使用介绍.docx

    javascript移出节点removeChild()使用介绍.docx

    javascript removeChild 使用注意事项

    假如:一段普通的代码: 其中gift_list为一个table的id 代码如下:var ...i++) { giftTrs[i].removeChild(giftTrs[i]); } 那么这时候只会删除第一行,因为当删除了一个之后,行的位置会向前移动一位。 giftTrs.le

    javascript removeChild 导致的内存泄漏

    最近看到司徒正美的一篇文章《移除DOM节点》,文中说到在IE中移除容器类节点,会引起内存泄露。

    js removeChild 障眼法 可能出现的错误

    js removeChild 障眼法之可能出现的错误,大家看下代码就知道了。

    JavaScript中removeChild 方法开发示例代码

    当你遍历一个父节点的子节点并进行删除操作时,要注意,children属性是一个只读属性,并且它在子节点变化时会实时更新 // 拿到待删除节点: var self = document.getElementById('to-be-removed'); // 拿到父节点: ...

    ASP.NET无刷新上传.rar

    iframe = document.createElement( $$B.ie ? "&lt;iframe name=\"" + iframename + "\"&gt;" : "iframe"); iframe.name = iframename; iframe.style.display = "none"; //记录完成程序方便移除 var finish ...

    js使用removeChild方法动态删除div元素

    用户打开查找界面时,有系统推荐的用户,而当用户按条件查找后,查找的结果动态加载和显示。所以考虑到用js来搞。 这个for循环就是移除已有的表单。然后根据Ajax请求过来的数据,动态生成新的表单对象。一定要注意j...

    js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器

    本文实例讲述了js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器。分享给大家供大家参考。具体实现方法如下: /** 音乐播放器 * @param obj 播放器id * @param file 音频文件 mp3: ogg: * @param loop 是否...

    Javascript removeChild()删除节点及删除子节点的方法

    下面给大家介绍Javascript removeChild()删除节点的方法,具体详情如下所示: 在Javascript中,只提供了一种删除节点的方法:removeChild()。 removeChild() 方法用来删除父节点的一个子节点。 语法:  parent....

Global site tag (gtag.js) - Google Analytics