复制到剪贴板不能在Firefox 53(OSX)中工作

时间:2017-05-02 16:00:50

标签: javascript firefox copy clipboard

我正在尝试使用javascript从iframe复制文本内容。我的代码几乎与此问题的接受答案相同How can I copy text in one click in Mozilla Firefox?但是它似乎不再起作用。

它适用于Safari,Chrome和IE。在FF中,选择工作正常,但我在控制台上收到以下错误:

  

document.execCommand('cut'/'copy')被拒绝,因为它不是   从短暂运行的用户生成的事件处理程序内部调用。

问题是,就像上面问题中的接受答案一样,我在用户生成的事件处理程序中。

在FF剪贴板事件的最新版本中,默认情况下应该可用,我已经检查过它们已启用但没有快乐。

最近有没有人遇到过这样的问题?

修改

添加代码段。由于iframe,它有点难看

     (function() {
        var el = document.getElementById("copyButton");
        el.addEventListener("click", selectAllText, false);
    })();

function selectAllText(){

    var window;
    // Google Chrome Iframe
    if(noteViewFrame.contentWindow){
        window = noteViewFrame.contentWindow;
    }else {
        // Other browsers
        window = noteViewFrame;
    }
    window.makeSelectable();
    var node = window.document.getElementById( 'NoteEditor_0' );

    if ( window.document.selection ) {
        var range = window.document.body.createTextRange();
        range.moveToElementText( node  );
        range.select();
    } else if ( window.getSelection ) {
        var range = window.document.createRange();
        range.selectNodeContents( node );
        window.getSelection().removeAllRanges();
        window.getSelection().addRange( range );
    }

    window.document.execCommand('copy');
}

触发事件,选择内容,但在FF上,控制台中显示上述错误

0 个答案:

没有答案