【问题标题】:How to access chrome.runtime in options page in Chrome Extension?如何在 Chrome 扩展程序的选项页面中访问 c​​hrome.runtime?
【发布时间】:2018-07-18 13:10:08
【问题描述】:

我想在 chrome 扩展开发中创建选项页面,这是清单:

"manifest_version": 1,
"author":"Handita Okviyanto",
"name": "My Extension",
"options_page": "home.html",

然后我想在我的home.html 中访问chrome.runtime 文件如下所示:

<html>
....
<script src="app.js">
....
</html>

app.js 看起来像这样:

$(document).ready(function(){
   var url = chrome.runtime.getUrl('login.html');
});

但是当我通过 chrome 开发人员进行调试时,结果是 undefined。我可以通过background.jscontentscript.js 访问它

我仍然对应该在哪个页面使用chrome 对象感到困惑。

更新

附加图片

【问题讨论】:

  • 第一次访问chrome API之前不要设置断点。这是一个已知的错误。
  • 好的。我尝试将代码移到外部 jquery 就绪函数上。但我仍然无法访问该功能。它指出函数getUrl 未定义。我怎样才能访问它? app.js:1103 Uncaught TypeError: Cannot read property 'getUrl' of undefined at app.js:1103
  • 不是您问题的答案,但没有getUrl 方法。应该是getURL
  • 抱歉类型错误。但是当我更改为getURL 时,它仍然未定义。当我调试时,变量chrome 具有值'Google Chrome' 字符串类型
  • 您正在用结果覆盖chrome API。将您的变量重命名为其他名称。

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


【解决方案1】:

最后我发现了问题,我包含了全局变量名称为chrome 的库,所以它被变量覆盖了。

所以我只是在所有文件中搜索所有名为 chrome 的变量。并在我包含的一个文件 js 中找到了 chrome。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    相关资源
    最近更新 更多