【问题标题】:iframe change selectioniframe 更改选择
【发布时间】:2012-08-13 00:03:23
【问题描述】:

我正在创建一个非常简单的 rte,这是我的问题,我可以在 iframe(designmode=true) 中获取选定的文本,但是我无法更改它。

html

<a onclick="change();">change</a>
<iframe id="textEditor"></iframe>

脚本文件

function $(Str1){return document.getElementById(Str1);}
rte()
{
    var texteditor=$('texteditor');
    textEditor.document.designMode="on";
    textEditor.document.body.contentEditable="True";
    textEditor.document.open();
    textEditor.document.close();
    textEditor.focus();

}
function change()
{
    var userSelection,range;
    if (window.frames['textEditor'].getSelection)
    {
        userSelection=window.frames['textEditor'].getSelection();
    }
    else if(document.frames['textEditor'].selection)
    {
        userSelection=document.frames['textEditor'].selection.createRange();
    }
    if(userSelection.getRangeAt)
    {
        range=userSelection.getRangeAt(0);
    }
    else
    {
        range=document.frames['textEditor'].createRange();
        range.setStart(userSelection.anchorNode,userSelection.anchorOffset);
        range.setEnd(userSelection.focusNode,userSelection.focusOffset);
    }
    range="<div style='color:#f00;'>" + range + "</div>";
}
window.onload = rte();

【问题讨论】:

    标签: javascript iframe rte designmode


    【解决方案1】:

    会不会是rte() 函数的第一行引用了“texteditor”而不是“textEditor”?

    【讨论】:

    • 你是对的,但是当我将它们全部设置为相同时,脚本会出错
    【解决方案2】:

    我找到了一种方法,改变功能应该是这样的

    function change()
        if(document.selection)
        {
            sText=textEditor.document.selection.createRange();
            sText.execCommand("createlink","","");
            temp=sText.parentElement().innerHTML;
            newNode=textEditor.document.createElement("h1");
            replacement=sText.parentElement().replaceNode(newNode);
            newNode.innerHTML=temp;
        }
        else if(document.getSelection)
        {
            sText=textEditor.window.getSelection();
            myTag=textEditor.document.createElement("div");
            myTag.setAttribute("class","bold");
            sText.getRangeAt(0).surroundContents(myTag);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-28
      • 2013-03-03
      • 1970-01-01
      • 2016-02-26
      相关资源
      最近更新 更多