通过javascript将contenteditable div内容转换为纯文本

时间:2013-09-15 20:15:18

标签: javascript iframe richtextbox contenteditable onkeyup

我正在尝试使用一个功能 - 添加链接来制作自定义轻量级富文本编辑器。我做了一些研究,并决定iframe是最好的选择。在一些乱七八糟的情况下,它有一个例外 - 我需要在keyup事件上运行一些代码。我阅读了我在互联网上找到的所有内容,没有任何帮助,仍然无效...

iframe.document.designMode = 'On';
iframe.document.open();
iframe.document.write(someHTML);
iframe.document.close();

var keyupHandle = function() { /* some code */ };

var iframeDoc = document.getElementById('iframe').contentWindow.document;
if(iframeDoc.addEventListener) {
    iframeDoc.addEventListener('keyup', keyupHandle(), true);
} else {
    iframeDoc.attachEvent('onkeyup', keyupHandle());
}

1 个答案:

答案 0 :(得分:0)

我想我记得在将事件处理程序添加到文档之前需要等待iframe完全加载。如果可能的话,在iframe的HTML中添加一些内容,以便在加载时调用父页面:

window.iframeLoaded = function() {
    var iframeDoc = document.getElementById('iframe').contentWindow.document;
    if(iframeDoc.addEventListener) {
        iframeDoc.addEventListener('keyup', keyupHandle(), true);
    } else {
        iframeDoc.attachEvent('onkeyup', keyupHandle());
    }
};

iframe.document.designMode = 'on';
iframe.document.open();
iframe.document.write('<html><body onload="parent.iframeLoaded()">Stuff</body></html>');
iframe.document.close();

如果失败,使用window.setTimeout()设置一个简短的计时器可能会有效。