【问题标题】:Drag and drop of image in Chrome在 Chrome 中拖放图像
【发布时间】:2011-05-15 13:23:05
【问题描述】:

我正在尝试编写一个脚本,用于在 Chrome 中的 iframe 中拖放图像。

<html>
<head>
    <script language="JavaScript">

        function InsertImage(ev)
        {
            alert("drag function called");
            var _image = document.createElement("image");
            var _sel = _win.getSelection();
            if(!_sel.isCollapsed)
            {
                _sel.deleteFromDocument();
            }
            try{
                var _range = _sel.getRangeAt(0);
            }
            catch(e)
            {
                _range = _doc.createRange();
                alert("000000:::: "+e);
                alert("_range is ::"+_range);
            }
            if(!_range)
            {
                _range = _doc.createRange();
            }
            alert("range is ::::"+_range);
            try
            {
                _range.insertNode(_image);
            }
            catch(e)
            {
                alert("1111::  "+e);
            } 
            _range.insertNode(_image);


        }

        function init()
        {
            _iframe =   document.createElement("iframe");
            _iframe.id = "view";
            _iframe.style.height = "250px";
            _iframe.style.width = "600px";
            _iframe.style.top =   "20px";
            _iframe.style.left = "200px";
            _iframe.style.position = "absolute";
            _iframe.style.border = "2px solid lightBlue";
            document.body.appendChild(_iframe);
                _iframe.contentDocument.designMode="on";//No I18N
                _win = _iframe.contentWindow;
                _win.focus();
                _doc = _win.document; //making it global variable

                _doc.body.innerHTML = "<p>aaaa bbbb cccc dddd eeee ffff gggg hhhh iiii jjjj kkkk llll mmmm nnnn oooo pppp qqqq rrrr ssss tttt uuuu vvvv wwww xxxx yyyy zzzz</p>";
                _doc.addEventListener("dragover",InsertImage,false);

        }

    </script>
</head>
<body onLoad="init()">
    <div style="position:absolute;top:300px;left:100px ">
        <p> this si a testing doc.here, we test the things</p>
    </div>
</body>

不工作.. 在 chrome 控制台中,我收到以下错误消息:

未捕获的错误:WRONG_DOCUMENT_ERR:DOM 异常 4

我猜是选择和范围有问题。

【问题讨论】:

    标签: javascript image google-chrome iframe drag-and-drop


    【解决方案1】:

    每当 DOM 操作方法尝试使用与属于两个不同 DOMDocument 的节点时,都会引发 DOMException.WRONG_DOCUMENT_ERR 异常。您必须使用 DOMDocument.importNode 方法才能将 DOMNode 从一个文档导入到另一个文档。

    我想您必须将图像节点导入 iFrame 文档

    类似(未经测试):

    var nodeToImport = _doc.importNode(_image, true);
    //nodeToImport can now be added to the second document
     _doc.appendChild(nodeToImport);
    

    more here

    【讨论】:

    • 感谢 Casper,它现在工作了,唯一的事情是我必须在相关位置使用“_doc.appendChild(nodeToImport);”..
    猜你喜欢
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多