2017-11-14 21 views
2

に取り組んでいない私はかなりしばらくの間、コピーイベントを処理するために、次のコードを使用している:addRangeはChromeバージョン61

range.selectNodeContents(el); 
sel.removeAllRanges(); 
sel.addRange(range); 

私のユーザーのいくつかは、今のコピーイベントがChromeで動作していないことを報告しています。私は、バージョン61のリリース以来、これが起こっているようだと気づいた。新しいバージョンのChromeで要素の内容をクリップボードにコピーする方法はありますか?

+0

すべてのコードを指定します。してください、おそらくelはcontenteditableではありません –

+0

@СергейПетрашкоそれはChromeのこのバージョンまで考えています。これは静的なアプリケーションであり、長い間変更されていません。このイベントは引き続きIEとそれ以前のバージョンのChromeで動作します。そのため、このメソッドに関連しているものであり、要素自体ではないと思うのはこのためです。 – developthewebz

答えて

0

このコードを試してみてください。

let sel = window.getSelection(); 
    sel.removeAllRanges(); 
    let range = document.createRange(); 
    range.selectNodeContents(el); 
    el.contentEditable = true; 
    el.focus(); 
    sel.addRange(range); 

このコードは動作しない場合は、removeAllrangesは廃止され、選択は一つだけ範囲

を持っている可能性があるため が

sel.removeAllRanges(); 

ずにyoureのコードを使用してみてください

コードを使用しました(例)

let range = document.createRange(); 
let sel = window.getSelection(); 
range.selectNodeContents(document.body); 
sel.addRange(range); 

と動作します(chrome 62でテスト済み)。 elノードが表示されないか、DOMにこのノードがありません。すべてのコードがなければ私はあなたを助けることができません。

関連する問題