【问题标题】:Chrome extension search for string then perform somethingChrome 扩展搜索字符串然后执行某些操作
【发布时间】:2015-11-14 18:59:41
【问题描述】:

通过研究和其他一些代码,我几乎拼凑出我自己的 chrome 扩展程序,如果页面加载到包含某些文本的 chrome 中,它将使用 Pushover 通知服务发送警报。

我已经设法让我的 background.js 在任何页面完成加载后发送警报:

chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab){
if (changeInfo.status == 'complete') {
chrome.tabs.sendRequest(tab.id, {method: 'selection'}, 
function (text) { push_message(tab, text,  
'');

我有一点点 java 代码来查找字符串

if (~document.body.textContent.indexOf('cricket')) { alert("page contains string"); }

但我似乎无法让两者一起工作。我已经阅读了关于将查找字符串 java 放在 contentscript.js 中的混合报告?此外,我最好希望我的代码能够搜索多个字符串。所以它会像这样工作:

  • 页面加载完毕
  • Javascript 搜索页面以查找术语板球或足球
  • 如果它找到这些术语中的任何一个,它就会触发代码以发送推送通知(我上面的第一段代码当前位于 background.js 中)

非常感谢您的任何帮助。

【问题讨论】:

  • Java 和 JavaScript 是完全不同的东西。

标签: javascript google-chrome-extension pushover


【解决方案1】:

在您的 manifest.json 中,您可以执行类似

的操作
"content_scripts": [
{
  "matches": ["<all_urls>"],
  "js": ["someContentScript.js"],
  "run_at": "document_start",
  "all_frames": false,
}]

然后在您的内容脚本中,您可以在收到loadDOMContentLoaded 事件后执行页面报废。

一旦您检测到您的字符串(足球或板球),您就可以使用消息传递 API 向您的后台页面发送消息。看着 chrome.runtime.sendMessage API。我认为还有另一种方法,但我不确定。

现在,一旦您进入了您的 background.js 代码,您就可以调用您的 push API。

我希望这会有所帮助。

【讨论】:

  • 谢谢,这很有帮助。仍在与将消息发送回后台的方式作斗争,但我差不多了。目前我最大的烦恼是我不知道如何列出多个要查找的 javascript 术语。我试过 "if (~document.body.textContent.indexOf('cricket', 'football', 'tennis', 'squash)) { alert("page contains string"); };
  • 想我明白了:(“板球|足球|网球”)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多