問題タブ [google-chrome-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.
javascript - jQuery.ajax() は POST リクエストを Chrome 拡張機能で GET として送信します
POST http リクエストを介して会社のネットワーク内のサーバーにメッセージを送信する必要がある小さな Chrome 拡張機能を構築しています。また、jQuery 1.4.1 を使用して JavaScript 部分の開発を高速化しています。
リクエストを送信するための次のコードがあります。
この方法で行われたリクエストは失敗します。Chrome ログで、サーバーが http ステータス 400 と「このメソッドには POST が必要です」というテキストで応答することがわかります。
上記のコードに変更すると、次のようになります。
すべて正常に動作し、http ステータスは 200 で、サーバー側では、送信したデータが正しく保存されていることがわかります。
完全な $.ajax() メソッドを使用する必要があるのは、成功または失敗の場合にいくつかの作業を行う必要があり、リクエストが完了したときに別の作業を行う必要があるためです。したがって、$.post() では十分ではありません。
$.ajax() の呼び出しで何か間違ったことをしているのですか、それとも Chrome 拡張機能の xontext にいるために何らかの問題があるのでしょうか?
ありがとう
javascript - Javascriptで新しいシークレットウィンドウを開く方法は? (グーグルクローム)
友人がマウス ジェスチャ (マウス ストロークのカスタム ストローク - Chrome 拡張機能) を実行したときに、友人が新しいシークレット ウィンドウで Web サイトを開くのを手助けしたいと考えています。
css - Selectタグのテキストの色を黒に設定するiframeでCSSを編集しますか?
これは、GoogleChrome拡張機能に関する非常に具体的な質問です。
このページは、iPhoneまたはDroid電話でMeebo.comにアクセスしたときに表示される場所です。ただし、気付いた場合は、自分自身を設定できる[ステータス]ボックス、または自分のステータスをどのようにするかについて、白い背景に白いテキストが表示されます。
拡張機能に含まれているhtmlファイルではないウェブサイトをGoogleChrome拡張機能のポップアップウィンドウ(アドレスバーの横にあるアイコンをクリックするとドロップダウンするウィンドウ)に表示するには、iFrameを使用する必要があります。javascriptのようなクロスサイトのものにはセキュリティ対策があることを知っています。CSSへのアクセスに問題があるのは驚きではありません。しかし、クラス、ステータスがあり、色は白なので、それを黒に変更する必要があります。ChromeのInspectElementウィンドウでテストしましたが、変更すれば問題ありません。
私はmanifest.jsonファイルを変更してContent-Scriptsを使用してCSSファイルを挿入しようとしましたが、何もしません...
Chrome拡張機能は初めてですが、ウェブ開発の経験があります。
google-chrome - Chrome拡張機能-IPドメインの権限
Chrome拡張機能は、DNSが設定されていない自宅のLAN上のサーバーにリクエストを送信する必要があるため、すべてにrawIPを使用しています。これらのリクエストはバックグラウンドページから送信しているので、マニフェストファイルに適切な権限があれば、それを実行できるはずです。これは私がマニフェストに持っているものです:
ただし、httpスニファを使用すると、その宛先にリクエストが送信されないことがわかります。ロギングを介して、jQuery$.ajax()
呼び出しに到達 したことがわかります。
このスレッドを読んだので、バックグラウンドページからhttpリクエストを行うように指示されました。
質問:生のIPを使用すると、Chromeによってリクエストがドロップされると思いますか?
ありがとう。
javascript - Javascript文字列をISO-8859-1にトランスコードするにはどうすればよいですか?
ISO-8859-1を使用するWebサイトで動作するChrome拡張機能を作成しています。コンテキストを説明するために、私の拡張機能は、より便利な投稿フォームを追加することで、サイトのフォーラムへの投稿をより速くすることです。次に、メッセージが書き込まれるtextareaの値が、(jQueryを使用して)Ajax呼び出しを介して送信されます。
メッセージに次のようなá
文字が含まれている場合、これらの文字は投稿されたメッセージに×として表示されます。ブラウザにISO-8859-1ではなくUTF-8を表示させると、á
正しく表示されます。
Javascriptは文字列にUTF-8を使用していることを理解しているので、送信する前に文字列をISO-8859-1にトランスコードすると、問題が解決するはずです。ただし、Javascriptでこのトランスコーディングを行う直接的な方法はないようで、サーバー側のコードに触れることはできません。何かアドバイス?
作成したフォームを次のようにiso-8859-1を使用するように設定してみました。
そしてまた:
しかし、それはうまくいかないようです。
編集:
問題は、jQueryがメッセージ(または途中で何か)をどのようにエンコードしているかに実際にありました。次のスニペットに示すように、データを処理しないようにjQueryに指示し、自分で実行することでこれを修正しました。
javascript - ChromeのGreasemonkeyスクリプトからページにJS関数を挿入する
FirefoxとOperaで問題なく動作するGreasemonkeyスクリプトがあります。ただし、Chromeで動作させるのに苦労しています。問題は、ページからコードによって呼び出すことができる関数をページに挿入することです。これが私がこれまでに行っていることです:
まず、 FirefoxのunsafeWindowへのヘルパーリファレンスを取得します。これにより、FFとOpera(およびChrome)で同じコードを使用できるようになります。
次に、ページに関数を挿入します。これは実際には非常に薄いラッパーであり、GMスクリプトのコンテキストで対応する関数を呼び出すだけです。
次に、私のスクリプトに対応する関数があります。
最後に、関数を呼び出すためのリンクを含むHTMLをページに挿入します。
要約すると、Firefoxでは、ユーザーがその挿入されたリンクをクリックすると、unsafeWindowで関数呼び出しが実行され、GMスクリプトのコンテキストで対応する関数を呼び出すタイムアウトがトリガーされ、実際の処理が実行されます。(ここで間違っている場合は訂正してください。)
Chromeでは、「Uncaught ReferenceError:setConfigOptionisnotdefined」エラーが発生します。実際、コンソールに「window.setConfigOption」と入力すると、「undefined」が生成されます。FirebugとOpera開発者コンソールには、機能があります。
これを行う別の方法があるかもしれませんが、私の関数のいくつかはページ上のFlashオブジェクトによって呼び出されるため、ページコンテキストに関数がある必要があると思います。
私はGreasemonkeywikiでunsafeWindowの代替案をざっと見てみましたが、それらはすべてかなり醜いように見えます。私はここで完全に間違った方向に進んでいますか、それともこれらをもっと詳しく調べる必要がありますか?
解決策:MaxSをフォローしました。アドバイスとそれは今FirefoxとChromeの両方で動作します。ページで使用できるようにする必要のある関数を通常の関数にコールバックする必要があったため、スクリプト全体をページに移動しました。つまり、彼が「main()」と呼んだ関数に完全にラップされています。
そのハックの余分な醜さをもう少し耐えられるようにするために、少なくともunsafeWindowとwrappedJSObjectの使用をやめることができます。
私はまだGreasemonkeywikiからコンテンツスコープランナーを機能させることができていません。同じように動作するはずで、正常に実行されているように見えますが<a>
、たとえば、ページの要素から関数にアクセスすることはできません。それがなぜなのか、私はまだ理解していません。
google-chrome - Google Chrome拡張機能でpopup.htmlのonbeforeunloadイベントがトリガーされますか?
ポップアップと背景ページを備えた Google Chrome 拡張機能を作成しています。ポップアップは、バックグラウンドが生成する特定のイベントをサブスクライブします。ポップアップが消えたら、これらのイベントのサブスクライブを解除したいと思います。ただし、ポップアップから生成される onbeforeunload または onunload イベントのいずれも表示されません。これらのイベントは発生しますか? そうでない場合、ポップアップを閉じる方法に関するアイデアはありますか?
javascript - JavaScript を使用してスクリプトを動的に挿入する
簡単に言えば、私はGoogle Chrome拡張機能に取り組んでいます。拡張機能は、デフォルトでは、操作対象のページのスコープ内の変数にアクセスできません (DOM を介して通信する必要があります)。
私がやろうとしているのは、スクリプトをページに挿入することです。これは、script タグと src 属性を定義することでうまく機能します。
問題は、このスクリプトが変数を事前に初期化する必要があることです。この変数を初期化するために、コードをインラインで (外部ソースからロードするのではなく) スクリプト要素を作成しようとしていますが、うまく動作しません。
これは可能ですか?可能であれば、スクリプト内でソースを定義するにはどうすればよいですか? JS ソースを含むテキストノードをスクリプト要素に追加しようとしましたが、役に立ちませんでした。
javascript - Gmailはすべてのキーボードイベントをキャプチャしているようです。それを回避する方法はありますか?
キーボードショートカットを使用してスクリプトを起動するChrome拡張機能を作成しています。ほとんどのページで正常に機能しますが、Gmailでは機能しないことに気付きました。すべてのキーボードイベントがGmailによってキャプチャされ、私の機能にバブルされていないようです。
私は次のようなコンテンツスクリプトを持っています(Chrome拡張機能ではこれは必要なページに追加されます):(もちろん簡略化されています):
しかし実際には、Gmailは私をがっかりさせます。スクリプトがロードされていることを知っています。さまざまなバリエーションwindow.addEventListener
や他のイベントタイプを試しましたが、役に立ちませんでした。
誰かがこれを回避する方法を知っていますか?私はGreaseMonkeyスクリプトがそれを実行できるかどうかを確認しようとしましたが、それは私をここに連れてきました:http ://code.google.com/p/gmail-greasemonkey/しかし、それは私を助けませんでした。
google-chrome - 設定を Google Chrome 拡張機能に保存する
Firefox を使用して、拡張機能の設定を保存できますComponents.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService);
Chrome に設定を保存するには、どのインターフェースを使用できますか? また、拡張機能の更新時に上書きされますか?
ありがとう