4

Google Chrome 固有 - これは、ブラウザ間の互換性を必要としない内部使用のアプリです

http://jsfiddle.net/spetnik/vpcyt4yv/を参照してください

データの貼り付けを許可しようとしているテーブルがあります。個々のセルをそのように選択可能にしました:

<td tabindex="0">

元々、TD 要素自体に onpaste イベントを追加しようとしましたが、これはまったく機能しませんでした。代わりに、テーブル要素にイベントを追加し、フォーカスされた要素が TD であることを確認してから、その要素にデータを貼り付けます。

document.getElementById("tblData").onpaste = function(evt){
    if(document.querySelector(":focus").tagName.toLowerCase() != "td"){
        return;
    }

    document.querySelector(":focus").innerText = evt.clipboardData.getData("text/plain");
};

これは基本的に機能しますが、通常、イベントは最初の試行では発生しません。a)テーブル内をランダムな回数クリックする(毎回異なる)か、b)イベントが発生する前にフォーカスを別のウィンドウに変更してからもう一度戻す必要があるようです。jsFiddle では、イベントの最初に console.log() 呼び出しを追加して、デバッグ ペインでイベントがいつ発生したかを正確に確認できるようにしました。

上記の jsFiddle またはhttps://jsfiddle.net/spetnik/vpcyt4yv/embedded/result/の結果を参照してください。

4

1 に答える 1