从选项页面调用Chrome扩展程序方法?

时间:2015-02-05 20:15:24

标签: javascript jquery google-chrome-extension

我为特定网站写了一个chrome扩展程序。如果已安装扩展程序并且我导航到该网站" example.com",我的扩展程序将调用以下方法:

 var search="john";
 $.get("https://www.example.com/complete/search?q="+search, function (data) {
        console.log(data);
    });

这很好用。

现在我必须在该扩展程序的options-page中调用相同的方法。当我这样做时,我收到以下错误:

  

XMLHttpRequest无法加载   https://www.example.com/complete/search?q=John。没有   '访问控制允许来源'标题出现在请求的上   资源。起源' http://localhost'因此不允许访问。

我理解为什么会发生这种情况,但必须找到解决这个问题的方法。我的想法是触发Extension-Script来调用该方法,然后将结果返回到选项页面。我希望,chrome.runtime.sendMessage()在这里没有帮助。

毋庸置疑:该域名不是由我托管,因此我无法更改标题。

1 个答案:

答案 0 :(得分:1)

错误表明它的不是实际的选项页面:您通过本地网络服务器(来源:http://localhost/)而不是通过本地网络服务器(可能是意外)打开它打开包含扩展名的页面。

  1. 您需要将自己的网页(例如options.html)添加到您的扩展程序文件夹
  2. 您需要将其添加到清单中,例如"options_page": "options.html"或更好with options_ui
  3. 您需要重新加载扩展程序以应用清单更改
  4. 您需要通过扩展程序打开它,例如通过chrome://extensions或您的扩展程序按钮的上下文菜单(如果有的话)