問題タブ [browser-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
774 参照

javascript - kangoフレームワークでバックグラウンドスクリプトとコンテンツスクリプトの間でオブジェクトを転送する方法

ブラウザ拡張機能内でバックグラウンドスクリプトとコンテンツスクリプトの間でオブジェクトを転送することは可能ですか?

バックグラウンドスクリプトでブラウザ内のストレージを処理したい。私のコンテンツスクリプトは、ユーザーの操作を追跡して保存する必要があります。したがって、ユーザーがインタラクションを記録し、同時にブラウザー拡張機能のUIを介してデータを管理する場合の同期の問題を回避するために、バックグラウンドスクリプトから「抽象」ストレージエンジンのインスタンスを取得するためにシングルトンパターンを使用することを計画しました。

私の最初の試みは次のようになります:

背景スクリプト

コンテンツスクリプト

val未定義ではありませんが、グーグルデバッガーが信頼できる場合はオブジェクトですが、関数sayMyNameは未定義です。

0 投票する
2 に答える
8797 参照

javascript - ブラウザ拡張機能のテスト

たくさんのブラウザー拡張機能を作成します (一般的な各ブラウザーで同じ機能を使用します)。コードの一部が共有されることを願っていますが、これについてはまだわかりません。確かに、一部の拡張機能はネイティブ API を使用します。私は TDD/BDD の経験があまりないので、このプロジェクトからこれらのアイデアを追い始める良い時期だと思いました。

問題は、それを処理する方法がわからないことです。ブラウザごとに異なるテストを作成する必要がありますか? これらのテストをどこまで進める必要がありますか? これらの拡張機能は非常に単純です。ローカル ストレージ内の一部のデータ、ページの更新、および Web ソケットを介したリッスンです。

そして、なぜ私にとって難しいのかについての私の観察-プラットフォームにも依存する多くの動作があり、モデルはそれほど多くないためです。

0 投票する
1 に答える
2636 参照

javascript - Backbone.jsビューのメソッドを手動で呼び出す方法

Backbone.jsを使用するサイトのブラウザー拡張機能を作成しています。その関連コードは次のようになります(無実を保護するために名前が変更されています)。

また、拡張機能の挿入されたjavascriptファイルからの呼び出しを<script>リッスンするために、ブロックにコードを挿入しています。postMessage()そこから電話をかけたいのですuseful_funcが、どうすればいいのか、どうしたらいいのかわからない(そうでない場合は、どうすれば同じ結果にたどり着くことができるのか)。

例として、私は次の参照を試しましたが、それらはすべて未定義として表示されます。

  • BigContainer.BaseView.$local_thing
  • BigContainer.BaseView.local_thing
  • Thing
  • document.getElementsByClassName('local_thing')[0].useful_func

重要なのは、自分が所有していないサイトの拡張機能を作成しているため、サイトのBackbone.jsコードを変更して自分自身を助けることができないということです。私はそこにあるもので作業する必要があります。

0 投票する
0 に答える
320 参照

javascript - Chrome拡張機能によって注入された要素を使用して元のページのクリックをトリガーします

私は、クリックするとページ内に表示されている2つのリンクのクリックをトリガーするリンクをページに挿入するChrome拡張機能に取り組んでいます。コンソールからコードを実行すると機能しますが、Chromes Isolated Worldが拡張機能を処理しているため、元のページのリンクでクリックイベントが発生しません。これを回避する方法はありますか?

コード:

ご協力いただきありがとうございます!

0 投票する
2 に答える
284 参照

javascript - 同じキーに複数の値を設定するには?

Crossrider APIを使用してブラウザー拡張機能を開発しています。

Crossrider のローカル データベースに同じキーに複数の値を追加したいのですが、

crossrider がサポートするメソッドはappAPI.db.set です

しかし、次のような多くの値を保存したい:

パラメータとして 1 つの値を取りますが、同じキーに対して多くの値を格納するにはどうすればよいですか?

0 投票する
1 に答える
4437 参照

json - Chrome 拡張マニフェストに www がない

www.site.com を site.com にリダイレクトするサイトの Chrome 拡張機能を取得しようとしています。

このマニフェスト ファイルは動作します。

これはしません

エラーは次のとおりです。

「'/Users/colmtuite/dev/mysite-extension' から拡張機能を読み込めませんでした。'content_scripts[0].matches[0]' の値が無効です: スキーム セパレータがありません。」

0 投票する
0 に答える
129 参照

javascript - 情報なしで拡張機能の作成が失敗する

Firefox、IE、および Chrome で動作するブラウザ拡張機能があり、現在それを safari に移植しています。

Apple Developer サイトの指示に従い、拡張フォルダーの名前をmyext.safariextension. 証明書を取得しましたが、Safari 拡張機能ビルダーがそれを認識していると思います。

ただし、何らかの理由で拡張機能の作成に失敗します。次のメッセージが表示されます。

失敗し、理由がわからない

問題に取り組む方法がわかりません。Google 検索、SO 検索、および SO チャット ルームでの質問では、結果が得られませんでした。

たとえそれが私を正しい解決策に導くだけであっても、どんな助けも感謝します. それが役立つ場合、これはWindows上のSafari 5です。

0 投票する
2 に答える
3446 参照

javascript - Date オブジェクトによって返される時間を変更するブラウザ拡張機能はありますか?

システムクロックを変更せずに JavaScript の Date オブジェクトによって返されるものを変更するブラウザ拡張機能はありますか?

これは、パンフレット ウェアを作成しているときによく出てくるものです。現在の日付に基づいて、訪問者に特定のプロモーションやクリエイティブな扱いを表示したいことがよくあります。訪問者のシステム クロックを使用している場合、自分のシステム クロックを変更する必要があるため、テストが面倒になります。もちろん、カレンダーのリマインダーが台無しになり、他に何があるかはわかりません。

0 投票する
1 に答える
370 参照

javascript - Googleインスタントページが完全に読み込まれたことを検出するにはどうすればよいですか?

私はブラウザ拡張機能に取り組んでいます(SEOQuakeを考えてください)-表示されている検索結果に関するいくつかのデータを表示する必要があります。

問題:読み込み中のGoogleインスタント検索結果ページに何かが追加されると、追加内容が上書きされます。私は本当に奇妙なsetIntervalビジネスを書いていることに気づきました(コンテンツのol#rsoサイズが変わるのをやめるまで待っています、そのようなもの)、それはページの読み込みが完了したかどうかを確実に判断する方法がわからないことを意味すると思います。

1〜2秒待つこともできますが、最大時間を節約するために、結果が読み込まれるとすぐにデータのフェッチを開始したいと思います。

編集:IE8がサポートしていないため、DOMElementWhateverを使用できないことに注意してください。

0 投票する
1 に答える
1076 参照

javascript - ブラウザが再起動/閉じられるまでデータが保持されるように、クロスライダーのローカルデータベースにデータを保存する方法

を使用している crossrider ローカル データベースに 6 桁の番号を保存する必要がありますappAPI.db.async
次のいずれかを実装したいと思います:
1) ユーザーがブラウザーを閉じたときに、保存されているデータを削除するよう crossrider に指示する方法。 または
2) 次回ブラウザを再起動したときにデータを自動インクリメントする方法。