HTML テーブル内のすべての要素に対して選択を強調表示する方法はありますか?
データを表形式で表示し、ユーザーがボタンをクリックして関連データを選択し、選択したスプレッドシートにコピー アンド ペーストできるようにしたいと考えています。
HTML テーブル内のすべての要素に対して選択を強調表示する方法はありますか?
データを表形式で表示し、ユーザーがボタンをクリックして関連データを選択し、選択したスプレッドシートにコピー アンド ペーストできるようにしたいと考えています。
これを試して:
function selectAll(parentNode) {
var sel;
// IE
if (document.selection) {
sel = document.body.createTextRange();
sel.moveToElementText(parentNode);
sel.select();
} else {
sel = document.createRange();
sel.setStartBefore(parentNode);
sel.setEndAfter(parentNode);
window.getSelection().addRange(sel);
}
}
selectAll(document.getElementById('myTable'));
ここでテストしてください。
データを選択するための API の抽象化を記述したときに、次のコメントを書きました。さまざまな URL (私のコメントで引用したもの) が役に立つかもしれません。
このインターフェイスは、W3C 標準に基づいていません。代わりに、さまざまなブラウザーの事実上のインターフェイスに基づいています。http://www.quirksmode.org/dom/range_intro.htmlで説明されているように、javascript の window.getSelection() メソッドを呼び出したときに返されるオブジェクトを表します 。
このインターフェイスの MS IE バージョンは、Microsoft API の「選択」オブジェクトのタイプであり、http://www.google.ca/search?hl=en&q=html+and+dhtml+reference で見つけることができ ます
ただし、このインターフェイスは (MS IE API ではなく) Mozilla API に基づいています。Mozilla インターフェイスは、 http://mxr.mozilla.org/mozilla/source/content/base/public/nsISelection.idl および https://developer.mozilla.org/en/DOM/Selectionにあります。
jquery のような Javascript ライブラリを使用している場合は、ブラウザ固有の違いを隠したり抽象化したりして、統一された API を提供できます。
ほとんどのブラウザーは、ユーザーが手動でテキストを選択できるようにすることで、この機能を既に提供しているため、CSV などの Excel 互換形式でデータをダウンロードするためのリンクをユーザーに提供してみませんか? たとえば、ページングする必要がある十分なデータを取得した場合、これはより堅牢なソリューションです。