无法选择超出可见区域的Iframe中剩余的文本

时间:2012-01-30 11:53:42

标签: asp.net-mvc-3 asp.net-mvc-2 iframe internet-explorer-9

我正在使用MVC3并且我的页面中有一个Iframe,并且在运行时打开了此Iframe的设计模式以进行编辑。在IE9中运行时,我无法选择Iframe可见区域之外的文本。例如:如果在我的Iframe中可以看到前7行,那么当我滚动选择第10行中的内容时,则不会进行选择。

<iframe id="RFrame" runat="server" style="width: 900px;"></iframe>

<script type="text/javascript">

    Sys.Application.add_load(PageLoad);

    function PageLoad() {
        var frame = $get('<%=this.RFrame.ClientID%>');
        $get('<%=this.RFrame.ClientID%>').contentDocument.designMode = "on";
        frame.focus();
    }
</script>

注意:除了IE9之外,其他所有浏览器都可以正常使用。仅当文件模式默认设置为IE9时,才会出现问题,对于激活模式IE9。

有谁能让我知道这种行为的原因或如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您遇到的问题是由设置designMode =“on”

引起的

要解决此问题,请不要设置designMode =“on”,而是设置contentEditable = true。

示例:

var editor = document.getElementById("RFrame");
editorDoc = editor.contentWindow.document;          
var editorBody = editorDoc.body;
editorBody.contentEditable = true;

当兼容模式被禁用时,这也将从IE9显示的IFRAME中删除水平滚动条。