Chrome Extension - Hotkeyを使用したJSスクリプトを実行しています -- javascript フィールド と google-chrome-extension フィールド 関連 問題

Chrome Extension - Running JS script with hotkey












0
vote

問題

日本語

次のことをするための簡単な拡張を書いています。

特定のウェブサイトを開くときexample.com、次に特定のホットキー(Ctrl + Space)を押すと、ページは特定の垂直位置(例えば500px)までスクロールする必要があります。

これは現在持っているコードです:

manifest.json

<事前> <コード> { "name": "Scroll", "description" : "Scroll", "version": "1.0", "manifest_version": 2, "content_scripts": [{ "matches": ["https://www.example.com/*"], "js": ["script.js"] }], "commands": { "_execute_browser_action": { "suggested_key": { "default": "Ctrl+Space" } } }

}

script.js

<事前> <コード> window.scrollTo(0, 500);

テストすると、ページが開いたら500pxにスクロールします。しかし、ホットキーを押すとスクロールすることができます。私はいくつかのチュートリアルをチェックしましたが、私が行方不明のものを理解できませんでした。どんな助けにも感謝されるでしょう。ありがとう。

編集:

改訂ファイル:

manifest.json

<事前> <コード> { "name": "Scroll", "description" : "Scroll.", "version": "1.0", "manifest_version": 2, "background": { "scripts": ["script.js"], "persistent": false }, "commands": { "scroll": { "suggested_key": { "default": "Ctrl+Space" }, "description": "Scroll" } } }

script.js

<事前> <コード> chrome.commands.onCommand.addListener(function (command) { if (command == "scroll") { // alert("Test"); this works window.scrollTo(0, 500); // this doesn't work } });

テストしたときにアラートを表示しますが、スクロールは実行されません。

英語

I am writing a simple extension to do the following:

When I open a certain website, e.g. example.com, and then press a certain hotkey (Ctrl + Space), the page should scroll to a certain vertical position (e.g. 500px).

Here is the code I currently have:

manifest.json

{ "name": "Scroll", "description" : "Scroll", "version": "1.0", "manifest_version": 2, "content_scripts": [{     "matches": ["https://www.example.com/*"],     "js": ["script.js"] }], "commands": {     "_execute_browser_action": {         "suggested_key": {             "default": "Ctrl+Space"         }     } } 

}

script.js

window.scrollTo(0, 500); 

When I test it, the page scrolls to 500px once it is opened. But I want it to scroll only when I press the hotkey. I checked some tutorials but couldn't figure out what I am missing. Any help would be appreciated. Thanks.

EDIT:

Revised files:

manifest.json

{     "name": "Scroll",     "description" : "Scroll.",     "version": "1.0",     "manifest_version": 2,     "background": {         "scripts": ["script.js"],         "persistent": false     },     "commands": {         "scroll": {             "suggested_key": {                 "default": "Ctrl+Space"             },             "description": "Scroll"         }     } } 

script.js

chrome.commands.onCommand.addListener(function (command) {     if (command == "scroll") {         // alert("Test"); this works         window.scrollTo(0, 500); // this doesn't work     } }); 

It displays the alert when I test it, but it doesn't perform the scroll.

</div
     

回答リスト

1
 
vote

あなたが必要なものは背景スクリプトです。

バックグラウンドスクリプトユーザーがChromeブラウザと対話している間(タブでのクリックイベントまたはキーストロークのリスニングをリスニングしている場合など)、バックグラウンドで実行され、トリガを聞くものです。

あなたのスクロールコードはコンテンツスクリプトが常にページのロード時に実行されます。それゆえあなたが見る行動。

あなたの背景スクリプトでは、スクロールのコードを書くことができます。そのため、キーストロークが表示されている場合にのみスクロールします。

これはあなたをさらに助けにするでしょう: Chrome拡張子

これが役立つことを願っています。


編集:これを試してください:

<事前> <コード> "commands": { "scroll" : { "suggested_key": { "default": "Ctrl+Space" }, "description": "Scroll Function" } }

<コード> manifest.json に上記のコードを入力します。

<事前> <コード> chrome.commands.onCommand.addListener(function (command) { if (command === "scroll") { alert("scrolled"); } });

<コード> background.js にこのコードを入れる。

 

What you need is background script.

Background scripts are something that run in background and listen for triggers while the user interacts with the chrome browser (such as listening for a click event on a tab or in your case listening for keystrokes).

Your scroll code is in Content Script which will always run when the page loads. Hence the behaviour you see.

In your background script, you can write the code for scroll. So it will only scroll if keystrokes are seen.

This shall help you even more: Background Pages in Chrome Extension

Hope this helps.


EDIT: Try this:

"commands": {     "scroll" : {         "suggested_key": {              "default": "Ctrl+Space"          },         "description": "Scroll Function"     }     } 

Put the above code in your manifest.json.

chrome.commands.onCommand.addListener(function (command) {     if (command === "scroll") {         alert("scrolled");     } }); 

Put this code in your background.js.

</div
 
 
         
         

関連する質問

0  View-SourceページのChrome拡張子からコンテンツスクリプトを実行することは可能ですか?  ( Is it possible to run content scripts from a chrome extension on the view source ) 
私はいくつかのコンテンツスクリプトを実行し、表示されたページのHTML / CSSを変更するChrome拡張機能に取り組んでいます。拡張機能は、「view-source: https://stackoverflow.com/ 」のようなビューソースのURLにア...

3  Google Chrome Rehost Image Extension  ( Google chrome rehost image extension ) 
クリックするイメージを再ホストするためのGoogle Chrome拡張をお願いします。 たとえば、 <img> タグを使用して画像付きのHTML文書を持っています。その画像を別のイメージホストに再ホストする拡張子を持ちたいです。 imgur拡張。私は手がか...

15  Chrome Extensionから現在のHTMLページにアクセスする  ( Accessing the current html page from chrome extension ) 
私はChrome Extensionsに新しいです。 現在のHTMLページのタイトルでアラートをポップアップする簡単なChrome拡張機能を作成します。 実行中の場合: alert(document.title) 、ドキュメントオブジェクトはページに属していな...

0  Chrome Extensionスクリプトが働いていません  ( Chrome extension script not working ) 
Chromeの拡張機能を作成するのは極めて新しいもので、今すぐあなたが開くことができる単純なキャンバスを作成しようとしている単純なキャンバスを作成しようとしています。 popup.html をロードしたとき、通常のウェブページとしてはすべて問題なく動作し...

2  EnterキーChrome Extensionを無効にします  ( Disable the enter key chrome extension ) 
特定のページのJavaScriptを使用してChrome拡張子のEnterキーを無効にしたい。例:ログインページで、Enterキーを押すのではなく、ログインボタンをクリックしてください。 私のChrome Extensionを通過するメッセージを使用しています...

0  現在のタブのすべての画像を読み、IFrameに表示し、Chrome拡張子の現在のページにフレームを追加します。  ( Read all images of current tab and showing into iframe and append frame to curre ) 
現在のタブのすべての画像を読み、別のページにバインドし、IFrameに別のページをロードし、Chrome拡張子の現在のページにIFrameを表示します。 すべてのコードは、newtab.htmlの内部ではなく、newtab.jsファイルがロードされていません。...

0  CSSでHTMLを読むことは可能ですか?  ( Is it possible to read html in css ) 
Google Chrome拡張を行い、(WebKit)スクロールバーの外観を変更しています。私は彼らに残りのページと一緒に「ブレンド」したいです。私がやっていることをしていたことは、ページの背景色を読み、それを背景色:: - webkit-scrollb...

5  Chrome拡張機能が有効になっているかどうかを検出するにはどうすれば(無効になった後)  ( How can i detect if a chrome extension has been enabled after having been disab ) 
ユーザーが拡張子を無効にしてから、後でそれを有効にしましょう。 拡張子が再度有効になったときに関数を実行する方法は? LocalStorageを使用して、拡張機能上のinstall installを実行するように似ているものをやってみましたが、LocalS...

1  Google Chrome Extention Iconで未読項目数を表示します  ( Show unread item count in google chrome extention icon ) 
Google Chrome Extensionアイコンで未読項目数を表示することは可能ですか?もしそうなら、それから誰かがそれを行う方法を説明するいくつかのポインタに私を指していることができますか? 私はGoogle Chrome Extensionのマニュ...

5  jQuery.ajax()はChrome Extensionにあるように投稿要求を送信します  ( Jquery ajax sends post requests as get in a chrome extension ) 
私の会社ネットワークのサーバーへのPOST HTTPリクエストを通してメッセージを送信する必要がある小さなChrome拡張機能を構築しています.JQuery 1.4.1を使用してJavaScript部分の開発をスピードアップしています。私は要求を送信するための...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有