chrome扩展:堆栈跟踪:TypeError:不能读取属性'selectedtext'的定义
chrome extension: Stack trace: TypeError: Cannot read property 'selectedtext' of undefined
my contentscript.js:
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.ask === "selectedtext"){
sendResponse({selectedtext: window.getSelection().toString()});
}
});
my background.js:
function onClickHandler(info, tab) {
chrome.tabs.sendMessage(tab.id, {ask: "selectedtext"}, function(response) {
console.log(response.selectedtext);
});
};
chrome.contextMenus.onClicked.addListener(onClickHandler);
chrome.runtime.onInstalled.addListener(function() {
var contexts = ["selection"];
for (var i = 0; i < contexts.length; i++){
var context = contexts[i];
var title = "send the word to background.js";
var id = chrome.contextMenus.create({"title": title, "contexts":[context],"id": "context1" + context});
}
});
:
{
"name" : "Send Data Plugin",
"version" : "1.1",
"description" : "A trivial usage example.",
"permissions": [
"browsingData", "contextMenus", "http://chromeplugin.sites.djangoeurope.com/"
],
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"background": {
"persistent": false,
"scripts": ["background.js"]
},
"manifest_version": 2,
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["contentscript.js"]
}]
}
但是,一旦我点击contextMenu send the word to background.js
,我在控制台得到错误:
Stack trace: TypeError: Cannot read property 'selectedtext' of undefined
我做错了什么?我在谷歌上搜索并阅读了一些问题,但似乎没有帮助…
你的错误意味着你得到未定义的响应。即没有数据从上下文页面返回。
你的content.js看起来很好,我认为最有可能的事情是没有内容脚本从另一端通信。在你的内容脚本中添加一个console.log,并确保它被击中。
您可能只需要刷新您正在通信的页面,因为内容脚本可能不是当前的?
相关文章:
- 如何在选项卡上定义属性'的主窗口对象
- 设置自动分隔符的自定义属性
- 与ng attr myCustomAttribute匹配的自定义属性指令
- 获取自定义属性的值
- 为Google闭包类定义属性的首选方式是什么
- 如何创建自定义属性以添加if.bind
- 动态更新Angular2指令中自定义属性的值
- 使用jQuery更改输入字段的自定义属性
- 在 Javascript 生成的列表中,如何将自定义属性添加到 标记
- 设置 HTML 自定义属性与在 ID 属性中存储信息
- 为什么在原型中定义属性被视为反模式
- 将对象作为参数传递后的未定义属性
- 是否可以在 Polymer 中的
节点上使用自定义属性以获得漂亮的 API - 为什么克隆节点排除自定义属性
- 将自定义属性添加到 vuejs 组件
- 使用原型对象向javascript对象添加自定义属性和方法的建议
- 正在设置自定义属性名称
- datalist获取选定的值和自定义属性(无事件)
- 在Javascript构造函数中定义属性的正确方式
- 如何使用javascript获取元素的自定义属性值