我正在尝试使用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上,控制台中显示上述错误