【问题标题】:chrome extension: Stack trace: TypeError: Cannot read property 'selectedtext' of undefinedchrome 扩展:堆栈跟踪:TypeError:无法读取未定义的属性“selectedtext”
【发布时间】:2014-06-09 12:42:27
【问题描述】:

我的 contentscript.js:

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
   if (request.ask === "selectedtext"){
    sendResponse({selectedtext: window.getSelection().toString()});
   }      
});

我的背景.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

我做错了什么?我在这里搜索并阅读了一些问答,但似乎没有任何帮助..

【问题讨论】:

    标签: javascript google-chrome google-chrome-extension


    【解决方案1】:

    您的错误意味着您的响应未定义。即没有数据从上下文页面返回。

    您的 content.js 看起来不错,我认为最有可能的是没有内容脚本从另一端通信。在您的内容脚本中放置一个 console.log 并确保它被命中。

    您可能只需要刷新正在与之通信的页面,因为内容脚本可能不是当前页面?

    【讨论】:

    • 谢谢,我刷新了我选择文本的页面。没有成功。我将向您展示我的 manifest.json,以便您查看 content_script 是否定义正确。
    • 不知何故,我的 content_script 监听器没有从后台收到任何消息。
    • 您的内容脚本在 contentscript.js 中,而在上面您将其命名为 content.js... .
    • this answer。它可以解释为什么它没有加载。
    • 是的,很抱歉发布问题时意外,我更新了问题。好的,谢谢,我会看到这个链接
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多