問題タブ [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.
ubuntu - バックグラウンド スクリプトの window.state = 'fullscreen' は動作するはずですか?
Xubuntu 14.04 および Firefox 45.0.1 での作業はこちら
バックグラウンドスクリプト内からブラウザウィンドウを自動的にフルスクリーン状態にしようとしていますlocation.hash == "#fullscreen"
.
これは、コンテンツ スクリプトがリッスンする を実行することにより、特権 Web ページのスクリプトから要求されますpostMessage()
。コンテンツ スクリプトは、この要求をバックグラウンド スクリプトに委任します。
console.log()
期待される値を含め、すべてが期待どおりに機能しますbackground.js
(以下の関連するソース コード スニペットを参照してください)。ただし、ウィンドウはフルスクリーンにはなりません。実際には何も起こらず、ユーザーが開始したイベントを要求することに関するコンソールの警告もありません。これは、Web ページ自体から同様のことを試みた場合に受け取るはずです (これが、最初にこの拡張機能を作成することになった理由です) 。たとえば、試しw.state = 'minimized'
ても何もしません。
質問:
Firefox WebExtensions API は
window.state
(既に) 変更をサポートするはずですか?もしそうなら、Firefox WebExtensions API は、明示的なユーザー操作なしで全画面表示を引き起こすのに十分な特権を与えられているはずですか?
もしそうなら、私がこれをやろうとしているコンテキストからこれを行うことを許可されるべきですか?
おそらく、(X)ubuntu または Firefox の設定が原因でしょうか?
関連manifest.json
データ:
特権 Web ページ スクリプト:
content.js
スクリプト:
background.js
スクリプト:
google-chrome-extension - Chrome 拡張機能と Firefox WebExtensions マニフェスト: アプリケーション キーのサポート
Firefox WebExtensionsでは、拡張機能のマニフェストに アプリケーション キーが必要です。
Chrome の拡張機能はアプリケーション キーをサポートしていないようで、サポートされていないキーを単純に無視する Firefox とは異なり、キーが存在すると Chrome はエラーをスローします。
ブラウザごとに 2 つの異なるマニフェストを使用する必要のない、このエラーを回避する方法はありますか?
アプリケーション キーがマニフェストに表示されると、Chrome で次のエラーが発生します。
Unrecognized manifest key 'applications'.
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にあります。
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 はどのコンテキストで実行されていますか? 背景、ページ スクリプト、またはコンテンツ スクリプト?
javascript - Firefox アドオンで右クリックしたタブの URL を取得する方法
ブラウザーのタブ コンテキスト メニューにメニュー項目を追加して、タブの URL を Web サービスに送信する Firefox 拡張機能を作成しています。command
メニュー項目が選択されたときに起動し、正常に動作するメニュー項目のイベント リスナーがあります。
私が抱えている問題は、受け取ったイベントに基づいて右クリックされたタブを特定することです。command
タブ コンテキスト メニューは XUL ランドのタブの子ではないため、メニュー項目自体 (イベントのターゲット) からタブへの簡単なパスはないようです。もちろん、ユーザーが非アクティブなタブを右クリックした可能性があるため、現在のタブを取得することはできません。
私が現在使用している解決策はcontextmenu
、タブの URL をグローバル変数に格納するイベント ハンドラーを各タブに配置し、このグローバル変数をcommand
イベント ハンドラーで使用することです。これは問題なく動作し、複数のコンテキスト メニューを同時に表示することは物理的に不可能であるため、グローバル変数についてはある程度満足しています。
しかし、より良い方法はありますか?URL を保持するクロージャーでイベント ハンドラーを更新することを考えcommand
ましたが、新しいイベント ハンドラーを追加する前に古いイベント ハンドラーを削除する必要があるという欠点があり、事態がさらに複雑になります。
私の現在のコードは次のようになります。
java - Selenium FirefoxDriver の初期化
Selenium FireFoxDriver をロードしようとすると、ブラウザの起動に時間がかかります。自動更新を無効にするなど、多くのオプションを試しましたが、すべての努力が無駄です。そこで、サーバーの起動時に FirefoxDriver をロードすることにしました (つまり、コンテナの初期化時に web.xml で起動時のロード時間を 0 にします)。このアプローチに短所はありますか?また、これを行うためのより良い方法があれば提案してください。
前もって感謝します!!!
firefox - ユーザーが + をクリックして新しいタブを開くかのように、Firefox WebExtension から新しいタブを開く方法
私は次のことを試しました:
残念ながら、新しいタブ ページabout:newtab
を開くことができませんtabs.create()
。セキュリティエラーがスローされます:
about:newtab
Firefox WebExtension から開くにはどうすればよいですか?