問題タブ [crossrider]
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.
crossrider - 単純な CrossRider 拡張機能が機能しない
スコープには次のbackground
ものがあります。アクティブなタブ情報を 10 秒ごとにコンソールに出力する必要があります。
また、最新の Chrome では、コンソールには何も表示されません。
javascript - crossrider sidepanel プラグインとの通信
crossrider サイドパネルは単なる iframe です (js を挿入した html を使用できますが、ページの残りの部分との干渉を減らすために iframe を使用することに興味があります)。ブラウザ拡張機能と iframe の間のやり取りがまったくできません。
基本的な JS 通信ができない限り、サイドパネルに拡張機能を追加しても意味がありません。この場合、拡張機能を制御する iframe にいくつかのオプション、チェックボックスなどが必要です。このプラグインが存在するので、方法があるに違いないと思います。
理想的には、子 iframe にいくつかの基本的な入力処理 js を用意し、奇妙な保存/読み込みコマンドを送り返したいと考えています。答えは本当に何らかの形のメッセージ パッシングですか? もしそうなら、ここでどの API を使用すればよいですか?
これは関連していると思います: Accessing iframe from chrome extension
[編集]
OK、いくつか試してみました...
予想される使用法は、iframe の html コンテンツをどこかにホストすることです。ローカルであり、拡張機能の一部であることを考えると、少し奇妙です。一部のページをオフラインで表示したい場合はどうなりますか?? これはばかげているので、オプションとして却下します。ローカルで利用できるはずのものをホストしているリソースを無駄にするのはなぜですか。
別の方法は、サイドバーに表示される HTML を提供することです。この HTML は iframe に配置されないことに注意してください。CSS と JS が非常に分離されているため、iframe のアイデアが気に入っています。そのため、ページと拡張機能の間の干渉が最小限に抑えられます。
html
そこで、ID を使用して sidebar 属性を介して iframe を作成し、100 ミリ秒の遅延後に を使用してコンテンツを挿入しようとしましたmyiframe.contentWindow.document.open/writeln/close()
。The operation is insecure
これは chrome では問題なく動作しますが、firefox ではセキュリティ エラー ( on )で失敗しますopen()
。もう 1 つの方法は、
src
URL を介して iframe コンテンツを提供することです (サイドバーの場合、属性にデータ アドレスを使用しurl
ます): URL ではなく、IFRAME ソースとしての Html コード。これは firefox では機能しますが、chrome では CORS エラーが発生しますThe frame requesting access has a protocol of "http", the frame being accessed has a protocol of "data". Protocols must match.
。Warning: Blocked a frame with origin "http://localhost" from accessing a cross-origin frame. Function-name: appAPI.message.addListener
これらの CORS の問題は、本当にばかげていると思います。同じページに挿入された、同じ拡張機能からのすべてのコードです。クロスオリジンが起こっているわけではありません。私はいまいましいものを作成しました。オリジンを変更する力がある場合、そもそも安全ではないので、なぜわざわざ。
javascript - 私のウェブサイトページからボタンをクリックして、クロスライダー「background.js」で宣言されたjavascript関数を呼び出す方法は?
私のウェブサイトページからボタンをクリックして、クロスライダー「background.js」で宣言されたjavascript関数を呼び出す方法は?
Web サイト ページ " http://www.mysite.com/default.aspx "にボタン入力があります。また、 Crossrider [クロスブラウザー拡張フレームワーク] の "background.js" スコープで、javascript オブジェクト / JSON をパラメーターとして受け入れる関数 "myExtensionFunction" を定義しました。javascript オブジェクト/JSON をパラメーターとして渡し、自分の Web サイト ページのボタンをクリックしてこの関数を呼び出すことは可能ですか? その逆も可能ですか? もしそうなら、どのように?そうでない場合、なぜですか?
以下のチュートリアルで「ページ変数の値を拡張スコープに渡すにはどうすればいいですか?」ということはわかりましたが、上記の問題は解決できませんでした。 http://docs.crossrider.com/#!/guide/howto_get_page_variable
以下のコードを試してみたところ、クロスライダーのブラウザ拡張機能 [extension.js ファイル] で定義されている関数が見つからなかったため、予想どおり「関数が存在しません!」というアラートが表示されました。
javascript - Chrome 拡張機能のコンテンツ スクリプトが読み込まれず、エラーはありません。なし。小さなものでもありません
かっこ/中かっこを愚かにも置き忘れて、コンテンツ スクリプト全体が読み込まれない原因になることは珍しくありません。これが発生しても、どこにもエラーはありません。コンソールは空です。これは、content.js
直接の chrome 拡張機能とクロスライダーextension.js
(これも chrome) で発生します。結果を認識していると、ファイルのどこかに問題があることがわかりますが、それを手動で探すのは、遅ればせながら愚かなデバッグ方法です。問題を絞り込むために私が見つけた唯一の方法は...
一時的な html ファイルを作成し、コンテンツ スクリプトを直接インクルードし、その甘い行番号が表示されるのを待ちます。
ファイルを crossrider の Web インターフェイスにアップロードし、JS パーサーにエラーのある行を表示させます。
上記は遅くて面倒で、ショットガンで小屋の後ろに持ち出す必要があります.
1.コンテンツ スクリプトに問題があり、2.どの行またはどのタイプのブラケットが欠落しているかを chrome に教えてもらうには、どこに行けばよいですか?
crossrider - CrossRider: ポップアップで使用できるライブラリ メソッドのスコープは?
データベースにデータを保存しましたappAPI.db.async
。そして今、ポップアップページに表示したいと思います。ポップアップページにあるものは次のとおりです。
意図した結果が得られません。私が知りたいのは、ポップアップ ページ内で何が利用できるかということです。
また、余談ですが、リソース ディレクトリの HTML ページからブラウザー タブを開くにはどうすればよいbrowserAction.onClick
ですか?
そのようなものbackground.js
:
ありがとうございます (:->)
javascript - Crossrider 拡張機能のデバッグ拡張機能のインストールに失敗する - Firefox
FF25.0、フェドラ18。
これはただぐるぐる回っているだけです。ステージング拡張機能がインストールされ、拡張機能が dom を少し変更するため、その一部がアクティブになります (ローカル ストレージが初期化されるため、バックグラウンド スクリプトも実行されていると思います)。ページの読み込み時に実行する必要があるサイドバーやその他の dom インジェクションなど、すべての拡張機能が機能するわけではありません。しかし、crossrider のデバッグ モード ページは、実行中の拡張機能を認識できません。
これは私のコードのバグによるものと思われますが、デバッグする方法がないようです。サイドバーをコメントアウトしたとき、別のインストール後にまだ一時的に表示されていたため、プロキシ/キャッシュが邪魔をしていると思われますが、拡張 URL に追加の GET 引数を追加しても役に立ちませんでした. に追加debugger
してみましたextension.js
。コンソールは空です。firebug によってエラーは報告されません。拡張機能は chrome で正常に動作します。空白の拡張機能に戻って、失敗するまで少しずつ追加を試みたくはありません。Firefoxに「これがあなたの問題です。行番号Xにあります」とだけ言わせるような、もっと簡単な方法があるはずです。何か案は?
[編集]いくつかの
デバッグ オプション
をオンにした後、コンソールにエラーが表示されましたが、問題のあるファイル/行番号をクリックすると、[ソース:...] ウィンドウが開きます。Google Chromeでは、デバッガーでファイルを取得し、ブレークポイントにヒットし、更新して、発生したエラーをキャッチできます。さらに良いことに、機能するだけでなく実際にも機能する「例外発生時」オプションはどうでしょうか。
[編集]
ようやくブラウザ デバッガが動作するようになりました。最初のエラーはNS_ERROR_XPC_BAD_OP_ON_WN_PROTO
.
javascript - JavaScriptシリアライズ画像(アイコン)
CrossRider で拡張機能を構築しています。URLを持っている画像/アイコンをデータベースに保存する必要があります。これらは小さな画像であり、データベースでは問題になりません。私はそのようなものにアクセスできるかもしれませんbackground.js
:
そして、その画像をデータベース(キー/値データベース)にシリアライズし、後でデシリアライズして表示できるようにしたいと考えています。HTML5 のようなものFileReader.readAsDataUrl()
が良いでしょうが、フォームに縛られすぎているように見えるので、その方法は使用できません。
ありがとうございます ([-|)。
cross-browser - crossrider メソッド appAPI.db.async はサファリブラウザで動作しますか?
クロスライダーの拡張機能開発初心者です。非常に単純なコード スニペットを作成しました。これは、appAPI.db.async を使用して extension.js にデータを保存し、次に browseraction.setPopup を介して作成したポップアップ (ローカル ファイル) で appAPI.db.async を取得します。
ローカル ブラウザー ストレージの保存と取得は、FF と chrome で完全に機能します。しかし、サファリでは機能しません。
appAPI.db メソッドも試しましたが、結果は同じです。