DEEZER (www.deezer.com) で支払人を一時停止/再生する Google Chrome 拡張機能を作成しようとしています。Google chrome JavaScript コンソールでコード " playercontrol.doAction('next')
" を手動で実行します。deezer プレーヤーを操作できます。そのため、拡張機能を使用してコードを Deezer Web ページに挿入する可能性を検討しましたが、うまくいきませんでした。 . Google Chrome のコンソールからのように、Deezer Web ページで JavaScript コードを実行することはできますか? もしそうなら、どのように?
4023 次
1 に答える
6
ここで直面している問題は次のとおりです。
- バックグラウンド ページからコードを実行する代わりに、content_scripts を使用する必要があります。
- バックグラウンド ページから実行されるコードと、コンテンツ スクリプトとして実行されるコードは "サンドボックス化" されています。これは、ページによって作成されたグローバル変数にコードがアクセスできないことを意味します。あなたの拡張機能はそれにアクセスできません。良いニュースは、まだできるということです。ただし、賢くなければなりません。
拡張機能では、新しい Script タグをページの「ヘッド」に挿入する必要があります。新しいスクリプト タグを作成し、ページの先頭に追加する必要があります。追加する前に、script タグの「innerHTML」を実行する JavaScript に設定する必要があります。これがあなたがする必要があることの要点です。
var myJavaScript = "alert('hey guys');"; //You need to put your JS here.
var scriptTag = document.createElement("script");
scriptTag.innerHTML = myJavaScript;
document.head.appendChild(scriptTag);
これにより、新しいスクリプト タグが head に配置され、Chrome 拡張機能のセキュリティがバイパスされます。これにより、新しいスクリプトがページ上の通常のグローバル変数にアクセスできるようになります。つまり、'playercontrol' オブジェクトにアクセスできるようになります。
于 2014-12-03T18:09:44.180 に答える