iFrame 和 Textarea Editor Live Preview 以及 activeElement 的“Des
iFrame and Textarea Editor Live Preview and "Designer Mode" with activeElement
我正在制作一个具有实时预览功能的编辑器,这意味着当我在textarea
内键入HTML
代码时,它将自动显示在iFrame
中,我目前有以下代码来选择iFrame
中的活动元素: document.getElementById("IFRAME").contentWindow.document.activeElement
但是我该怎么做呢,以便当我单击iFrame
内的元素时, 它将选择我在textarea
中编写的元素源?一个概念也会很好。
我最初的概念是:
当我单击iframe
内的element
时,它将获得activeElement
的innerHTML
并在textarea
中搜索它,但问题是如果用户有多个相同的elements
具有相同的innerHTML
怎么办?所以这是行不通的。
粗略代码(仅用于概念(:
.HTML:
<iframe id="IFRAME"></iframe>
<textarea id="TEXTAREA" onkeyup="update()">
<div id="clickme">
</div>
</textarea>
JAVASCRIPT:
function update() {
document.getElementById('IFRAME') = document.getElementById('TEXTAREA').innerHTML;
}
function IFRAME_ELEMENT_CLICKED() {
// When "clickme" is clicked from inside the iframe, select the innerHTML generated in the TEXTAREA
// document.getElementById("IFRAME").contentWindow.document.activeElement ....
}
在我看来,当您从文本区域生成对 iFrame 的预览时,您应该通过包含一个说明符来创建 dom 元素,该说明符充当文本区域中的内容与 iFrame 内容之间的链接。您可能可以开始为您在 iFrame 上生成的每个标签分配一个 id,该标签可以是文本区域中的光标位置/字符索引等(这需要我在这里提到的更多操作,因为您需要在 iFrame 中重新分配 ID,因为并非总是每个人都在文本区域的末尾键入文本(。
这样,当有人在iFrame上进行选择时,您将能够捕获文本区域中内容的确切位置。
相关文章:
- activeElement、elementFromPoint和target之间的差异
- 从扩展访问document.activeElement.value
- Javascript ActiveElement和Keydown事件侦听器
- triple des encrypt c# and decrypt in javascript
- document.activeElement 在 onblur 处理程序中返回 body
- 获取 document.activeElement.id 的样式属性
- document.activeElement 返回一个 XULElement
- 是否可以像真实用户交互那样进行JavaScript操作来更改文档的activeElement
- ECB 模式下的 CryptoJS DES
- node.js UNIX 密码哈希的 DES 加密不像 mkpasswd 那样工作
- 单击元素>JavaScript输出文档.activeElement VS.事件目标
- document.activeElement.id 不起作用
- 是否有跨浏览器的解决方案来监控document.activeElement何时更改
- 文档对象用法和行为的activeElement属性.文档对象的
- document.activeElement.href在chrome中不起作用
- JavaScript中的三重DES加密和PHP中的解密
- CryptoJS解密C#DES加密文件失败
- iFrame 和 Textarea Editor Live Preview 以及 activeElement 的“Des
- crypto-js-DES(或Triple-DES)CBC模式下的加密
- 如何使用activeElement.tagName在不同浏览器的DOM内