0

Web ページのテキストを強調表示してから、javaScript で html を調べることは可能ですか? (JavaScriptがHTMLを別のDIVに吐き出すとしましょう)

私はクロムの拡張機能を構築しています。ユーザーがテキストを強調表示できるようにしたいのですが、拡張機能で次の 2 つのことを実行できるようにしたいと考えています。そのテキストをコピーします (textarea/input または span/div/any-要素を選択するか、span/div/any-element 内で選択したテキストの HTML を調べます。

これはすべて、chrome が DOM を編集および検査できることを前提としています。これは、GC の拡張機能マネージャーで受け取ったこの警告が原因であると考え ここに画像の説明を入力 ています。これは、拡張機能が何らかのアクセス権を持っていることを示しています。少なくともページアドレスに。さらにアクセスはありますか?

4

2 に答える 2

0

注: 以下は IE < 9 では機能しません。クロスブラウザー ソリューションについては、選択したテキストの HTML を参照してください。

function getSelectionText() {
    var text = "";
    if (typeof window.getSelection != "undefined") {
        text = window.getSelection().toString();
    }
    return text;
}

function getSelectionHtml() {
    var html = "";
    if (typeof window.getSelection != "undefined") {
        var sel = window.getSelection();
        if (sel.rangeCount) {
            var container = document.createElement("div");
            container.appendChild(sel.getRangeAt(0).cloneContents());
            html = container.innerHTML;
        }
    }
    return html;
}
于 2012-05-24T14:39:58.330 に答える
0

まず、Chrome がシークレット モードに対して表示する警告は気にしないでください。拡張機能がシークレットモードで有効になっている場合、ユーザーのブラウジング行動が記録されないという100%安全ではないことを人々に警告するためだけにあります(銀行アクセスデータなどの悪意のある拡張機能が収集される可能性があります)。

ユーザーがテキストエリア/入力フィールドで選択したテキストをキャッチしたい場合は、コンテンツスクリプトについて読んで拡張機能に実装することから始める必要があります。このようなスクリプトは、Chrome によって選択した Web サイトに挿入されます。そこから DOM を操作し、イベントをリッスンできます (Web サイトに埋め込まれた通常のスクリプトと同じように)。

選択したテキストを取得する方法の詳細については、質問に対する Tims の回答を参照するか、stackoverflow を検索してください。この質問は以前に複数回尋ねられました。

于 2012-05-24T20:01:47.630 に答える