每当我双击一个单词/选择它时,我都会尝试发出通知。在网上找到了几个例子,但我仍然无法让我的例子工作:
清单:
{
"name": "hh",
"description": "hh!",
"manifest_version": 2,
"version": "0.0.0.1",
"content_scripts": [
{
"matches": [ "http://*/*", "https://*/*" ],
"js": [ "background.js" ],
"all_frames": true,
"run_at": "document_end"
}
],
"permissions": ["storage", "notifications"],
"icons": { "128": "neoprice.png" }
}
background.js
var listener = function(evt) {
var selection = window.getSelection();
if (selection.rangeCount > 0) {
displayPrice();
var range = selection.getRangeAt(0);
var text = range.cloneContents().textContent;
console.log(text);
}
};
document.addEventListener('dblclick', listener);
function displayPrice(){
chrome.notifications.create(getNotificationId(), {
title: "message.data.name",
iconUrl: 'hh.png',
type: 'basic',
message: "message.data.prompt"
}, function() {});
}
// Returns a new notification ID used in the notification.
function getNotificationId() {
var id = Math.floor(Math.random() * 9007199254740992) + 1;
return id.toString();
}
我之前添加了以下内容,但我看到有人没有使用它,所以我删除了它
"app": {
"background": {
"scripts": ["background.js", "assets/jquery.min.js"]
}
},
我想要实现的目标:每当他们选择一个单词进入任何页面时,都会触发该功能。稍后,我希望将其用于特定页面。 :)
尝试:How to keep the eventlistener real time for chrome extensions?
Chrome extension double click on a word
https://github.com/max99x/inline-search-chrome-ext
两者都没有真正起作用,因为我也想要它们。 :(
答案 0 :(得分:1)
您似乎对background page和content script感到困惑。您的zsh
实际上是background.js
,但其名称为"背景"。虽然chrome.notifications api只能在content script
中调用,但尝试评论background page
功能会使您的代码正常工作。
请查看上面的教程,w displayPrice
事件触发器,使用Message Passing与后台页面进行通信,并在后台页面中调用dblclick
api。
以下代码用于chrome apps而不是chrome extension。
chrome.notications