<!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: 天堂左我往右
分享到:
相关推荐
在QTreeWidget中实现项的可编辑性,我们需要设置QTreeWidgetItem的 flags() 方法,允许用户编辑其文本。例如: ```cpp QTreeWidgetItem *item = new QTreeWidgetItem(); item->setText(0, "Item Name"); item->...
对于非IE浏览器,可以考虑使用JavaScript来实现相似的效果,例如: ```javascript document.querySelectorAll('iframe').forEach(iframe => { iframe.src = 'about:blank'; iframe.parentNode.removeChild(iframe...
上述代码尝试通过字符串形式创建iframe,如果发生错误(如在非IE浏览器中),则会捕获异常并使用正常的创建方式。为了应对所有可能的兼容性问题,我们还需要检测浏览器版本,并根据浏览器的不同选择不同的代码路径:...
在Web开发中,尤其是在使用JavaScript进行DOM操作时,不恰当的节点移除可能导致内存泄漏问题,特别是针对IE浏览器。 首先,我们要理解JavaScript中DOM的操作原理。DOM是文档对象模型(Document Object Model)的...
在JavaScript编程中,复制文本是一项常见的需求,尤其是在网页交互和用户...这就是JavaScript实现文本复制功能,同时兼容IE和火狐浏览器的基本思路和代码实现。在实际项目中,你可能需要根据具体需求进行调整和优化。
然而,不当使用`iframe`可能会导致浏览器内存占用过高,尤其是在旧版本的IE浏览器中。本文将探讨如何动态创建`iframe`以及如何有效地释放其占用的内存。 首先,我们来看如何动态创建`iframe`。动态创建`iframe`的...
在JavaScript(简称JS)中创建一个可编辑的表格是一个常见的需求,特别是在网页应用中,用户可能需要直接在页面上修改数据。本项目提供了一个这样的解决方案,允许用户通过单击单元格来激活编辑模式,按下回车键即可...
2. 内存中的节点:当节点被removeChild方法移除之后,节点对象并不会立即从内存中消失。如果你没有其他变量引用这个节点,JavaScript的垃圾回收机制最终会回收它。但是如果保留对节点的引用,那么它将继续占用内存...
这种行为在非IE浏览器中并不发生,它们通常只会执行原始的`script`脚本一次。 在IE浏览器中,特别是IE8及以下版本,克隆一个包含`script`节点的节点时,`script`的脚本内容可能被再次执行。这可能会导致代码冲突、...
在Web开发中,操作DOM元素是日常任务之一。JavaScript提供了很多方法来添加、修改或删除DOM元素。本文主要介绍的是JavaScript中的...通过对removeChild()函数的深入理解和熟练应用,可以提高代码的可维护性和执行效率。
在Vue项目中,有时我们需要在可编辑的div元素中实现用户能够插入内容的功能。这个功能在文本编辑器或者富文本编辑场景中非常常见。本文将详细介绍如何在Vue中实现在可编辑div的光标位置插入内容,并提供相关代码示例...
// 针对IE浏览器,删除IFrame if (navigator.userAgent.indexOf("MSIE") > 0) { document.body.removeChild(iframe); } } ``` #### HTML调用 ```html // 打印区域 …… // 调用打印按钮 ('print_box');">打印 ...
2. **异常处理**:当尝试移除的子节点不存在于父节点中时,`removeChild()`会抛出异常。因此,在调用该方法前最好先检查子节点是否存在于父节点中。 3. **事件监听器清理**:如果被移除的节点上有绑定的事件监听器...
4. **删除 `iframe`**:除了清空内容,如果不再需要 `iframe`,可以通过 `document.body.removeChild(el)` 删除 `iframe` 元素,进一步释放内存和DOM树中的引用。 5. **安全性**:在某些情况下,`about:blank` 也...
7. IE浏览器中,input标签的type属性是只读的,而在Firefox中是可读写的。在编写代码时,需要注意此属性在不同浏览器中的行为差异。 8. IE浏览器中`getElementsByName`和`document.all[name]`不能用来取得div元素,...
在IE浏览器中,JavaScript可以通过ActiveXObject对象来访问Windows API,获取电脑的一些基本信息。`ActiveXObject`是IE特有的,允许JavaScript与COM组件交互。以下是一个示例代码片段,用于获取电脑名称: ```...
removeChild(a)是用来删除文档中的已有元素 参数a:要移出的节点 代码如下: ”guoDiv”> <span>1</span> <span>2</span> <span>3</span> </div> var oDiv = document.getElementById(“guoDiv”); var firsChild = ...
这个实例展示了`removeChild()`函数如何在实际场景中使用,以及在处理动态网页内容时的重要作用。通过理解这个函数的工作方式,开发者可以更有效地管理DOM结构,根据需要添加、删除或更新元素,从而实现交互性和功能...
在JavaScript中,`removeChild()`方法是用来移除DOM树中指定元素的一个重要函数。这个方法在处理动态DOM操作时非常常见,特别是在删除列表项、节点等元素时。然而,不恰当的使用`removeChild()`可能会导致一些错误或...
本文实例讲述了javascript删除元素节点removeChild()用法。分享给大家供大家参考。具体分析如下: 操作DOM节点的方法:removeChild(),移除子节点,那么可以变通一下来实现移除指定的节点,我们可以先去找到要删除...