【问题标题】:Getting selected text within iframe in IE在 IE 的 iframe 中获取选定的文本
【发布时间】:2009-12-10 06:17:07
【问题描述】:

我有 id="iView" 和 designMode = on 的 iframe。

我的代码:

 var iframeWindow = document.getElementById('iView').contentWindow.document;                                                                                            
 var range = iframeWindow.getSelection().getRangeAt(0);

我得到的错误:

Microsoft JScript 运行时错误: 对象不支持此属性 或方法

我也尝试了来自
how to get selected text from iframe with javascript?

的答案

【问题讨论】:

    标签: javascript


    【解决方案1】:

    IE中没有获取文档对象的getSelection方法,只能使用选择对象。

    var selText;
    var iframeWindow = document.getElementById('iView').contentWindow;
    if (iframeWindow.getSelection)
        selText = iframeWindow.getSelection()+"";
    else if (iframeWindow.document.selection)
        selText = iframeWindow.document.selection.createRange().text;
    

    【讨论】:

    • 为什么需要检查 iframeWindow.getSelection 或 iframeWindow.document.selection?
    • 您正在检查功能是否存在,这本质上是浏览器检查。如果浏览器不支持该方法,这些语句将返回 false 并且脚本不会执行 - 如果检查不存在并且浏览器不支持该方法,则会引发错误。或者,您可以使用 try/catch 语句,但这通常是功能测试的实际方法。
    • @samuel:这是一个非常好的答案,但与您提到的另一个问题 (stackoverflow.com/questions/1471759/…) 中的一对几乎相同,那么这如何为您提供了新信息?
    • 大声笑刚刚检查过,它与您在该问题中的答案最相同。对不起,如果我似乎复制了它(我没有):-) 无论如何 +1。
    • @Andy E:我并没有为我的回答做一个特别的案例,我不认为你会复制它,因为风格略有不同,但感谢你的支持 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 2015-06-17
    • 1970-01-01
    • 2010-12-01
    相关资源
    最近更新 更多