問題タブ [firefox-addon-webextensions]

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 に答える
357 参照

ubuntu - バックグラウンド スクリプトの window.state = 'fullscreen' は動作するはずですか?

Xubuntu 14.04 および Firefox 45.0.1 での作業はこちら

バックグラウンドスクリプト内からブラウザウィンドウを自動的にフルスクリーン状態にしようとしていますlocation.hash == "#fullscreen".

これは、コンテンツ スクリプトがリッスンする を実行することにより、特権 Web ページのスクリプトから要求されますpostMessage()。コンテンツ スクリプトは、この要求をバックグラウンド スクリプトに委任します。

console.log()期待される値を含め、すべてが期待どおりに機能しますbackground.js(以下の関連するソース コード スニペットを参照してください)。ただし、ウィンドウはフルスクリーンにはなりません。実際には何も起こらず、ユーザーが開始したイベントを要求することに関するコンソールの警告もありません。これは、Web ページ自体から同様のことを試みた場合に受け取るはずです (これが、最初にこの拡張機能を作成することになった理由です) たとえば、試しw.state = 'minimized'ても何もしません。

質問:

  1. Firefox WebExtensions API はwindow.state(既に) 変更をサポートするはずですか?

  2. もしそうなら、Firefox WebExtensions API は、明示的なユーザー操作なしで全画面表示を引き起こすのに十分な特権を与えられているはずですか?

  3. もしそうなら、私がこれをやろうとしているコンテキストからこれを行うことを許可されるべきですか?

  4. おそらく、(X)ubuntu または Firefox の設定が原因でしょうか?


関連manifest.jsonデータ:

特権 Web ページ スクリプト:

content.jsスクリプト:

background.jsスクリプト:

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

google-chrome-extension - Chrome 拡張機能と Firefox WebExtensions マニフェスト: アプリケーション キーのサポート

Firefox WebExtensionsでは、拡張機能のマニフェストに アプリケーション キーが必要です。

Chrome の拡張機能はアプリケーション キーをサポートしていないようで、サポートされていないキーを単純に無視する Firefox とは異なり、キーが存在すると Chrome はエラーをスローします。

ブラウザごとに 2 つの異なるマニフェストを使用する必要のない、このエラーを回避する方法はありますか?

アプリケーション キーがマニフェストに表示されると、Chrome で次のエラーが発生します。

Unrecognized manifest key 'applications'.

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

javascript - getUrl 画像を試行すると、Firefox WebExtension でセキュリティ エラーが発生する

一部の Chrome 拡張機能を移植しようとすると、次のセキュリティ エラーが発生します: " http://example.com " のコンテンツが読み込まれないか、"moz-extension://04d69802-c26f-47ae-86f2-d54650455e5a/blocks/indicators/" にリンクされない場合があります__icon/indicators__icon-tweet.png"

manifest.jsonでは、このパスはweb_accessible_resourcesにあります。

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

firefox-addon - Firefox 拡張ストレージの使用

私は何とかこの拡張機能を実行することができます:

https://github.com/mdn/webextensions-examples/tree/master/beastify

クリックすると、ブラウザ アイコンpopup/choose_beast.jsが呼び出されます。

popup/choose_beast.jsこのコード(の先頭に配置)が例外を生成している理由を教えてください:

の関連エントリは次のmanifest.jsonとおりです。

コンテンツ スクリプトでいつでも取得できるように、このポップアップ HTML にデータを保存する方法は何ですか?

また、このページ choose_beast.html はどのコンテキストで実行されていますか? 背景、ページ スクリプト、またはコンテンツ スクリプト?

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

javascript - Firefox アドオンで右クリックしたタブの URL を取得する方法

ブラウザーのタブ コンテキスト メニューにメニュー項目を追加して、タブの URL を Web サービスに送信する Firefox 拡張機能を作成しています。commandメニュー項目が選択されたときに起動し、正常に動作するメニュー項目のイベント リスナーがあります。

私が抱えている問題は、受け取ったイベントに基づいて右クリックされたタブを特定することです。commandタブ コンテキスト メニューは XUL ランドのタブの子ではないため、メニュー項目自体 (イベントのターゲット) からタブへの簡単なパスはないようです。もちろん、ユーザーが非アクティブなタブを右クリックした可能性があるため、現在のタブを取得することはできません。

私が現在使用している解決策はcontextmenu、タブの URL をグローバル変数に格納するイベント ハンドラーを各タブに配置し、このグローバル変数をcommandイベント ハンドラーで使用することです。これは問題なく動作し、複数のコンテキスト メニューを同時に表示することは物理的に不可能であるため、グローバル変数についてはある程度満足しています。

しかし、より良い方法はありますか?URL を保持するクロージャーでイベント ハンドラーを更新することを考えcommandましたが、新しいイベント ハンドラーを追加する前に古いイベント ハンドラーを削除する必要があるという欠点があり、事態がさら​​に複雑になります。

私の現在のコードは次のようになります。

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

java - Selenium FirefoxDriver の初期化

Selenium FireFoxDriver をロードしようとすると、ブラウザの起動に時間がかかります。自動更新を無効にするなど、多くのオプションを試しましたが、すべての努力が無駄です。そこで、サーバーの起動時に FirefoxDriver をロードすることにしました (つまり、コンテナの初期化時に web.xml で起動時のロード時間を 0 にします)。このアプローチに短所はありますか?また、これを行うためのより良い方法があれば提案してください。

前もって感謝します!!!

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

firefox - ユーザーが + をクリックして新しいタブを開くかのように、Firefox WebExtension から新しいタブを開く方法

私は次のことを試しました:

残念ながら、新しいタブ ページabout:newtabを開くことができませんtabs.create()。セキュリティエラーがスローされます:

about:newtabFirefox WebExtension から開くにはどうすればよいですか?