iframe和selection结合使用,为什么焦点会失去?

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>模板</title>
    <script src="tool/jquery-1.7.2.js"></script>
</head>
<body>
<div class="editor">
    <textarea name="editContent" id="content" cols="32" rows="10"></textarea>
    <input type="button" class="addWords" value="插入内容"/>
</div>

<div class="show">
    <iframe src="model.html" marginheight="0" marginwidth="0" frameborder="0" scrolling="no" width="100%" height="450px" id="show_h5" name="show_h5"  onLoad="iFrameHeight()" ></iframe>
    <div id="edit" class="edit" contenteditable="true" style="width: 500px;height: 500px;border: solid 1px red;"></div>
</div>

<div class="right">
</div>
</body>
</html>

<script type="text/javascript">
    var testContent  = /.+/g;
    $(".addWords").click(function(){
        var content = $("#content").get(0).value;
        var array = content.match(testContent);
        var selection = window.getSelection();
        $.each(array,function(index,value){
            insertAtCursor(selection,value);
        });
    });

    function insertAtCursor(myField, myValue) {
        if(myField.anchorNode == null){
            alert("请选择要插入内容的位置!");
            return;
        }
        if(myValue != null && myValue != ""){
            var startPos = myField.anchorOffset;
            var endPos = myField.focusOffset;
            var word = myField.anchorNode.data;
            myField.anchorNode.data =  word.substring(0, startPos) + myValue + word.substring(endPos, word.length);
        }else{
            alert("请输入要添加的内容!");
            return;
        }
    }
</script>

model.html中只有一个div
<div class="content" id="content" contenteditable="true" style="width: 500px;height: 300px;border: solid 1px red"></div>

问题:在本页的div可以实现在鼠标处插入文字,但是通过iframe引入的div,当点击“插入内容”按钮时,原本在div中的焦点就失去了。请教如何解决这个问题。
阅读 3.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题