【问题标题】:How to load Javascript Library google chrome extention using chrome.runtime.getURL()?如何使用 chrome.runtime.getURL() 加载 Javascript 库谷歌浏览器扩展?
【发布时间】:2018-04-10 01:13:12
【问题描述】:

我正在尝试在我的扩展程序中加载这个客户端 JavaScript 库。我遇到了 CORS 问题,因此我正在接受 google 的建议并从磁盘加载它。

https://developer.chrome.com/extensions/xhr

我正在尝试使用以下代码

var xhr = new XMLHttpRequest();
xhr.open("GET", chrome.runtime.getURL('../lib/lit.js'), true);
xhr.onreadystatechange = function() {
  if (xhr.readyState == 4) {
    // JSON.parse does not evaluate the attacker's scripts.
    var resp = JSON.parse(xhr.responseText);
    console.log(resp);
  }
}
xhr.send();

这不起作用,并返回错误

contains.js:12 GET chrome-extension://invalid/ net::ERR_FAILED

但是,我可以在浏览器中正常访问该库。

chrome-extension://npijdekijlclehcfenbajdainfncbfpi/../libs/library.js

关于为什么我无法加载文件的任何想法? (我打算在之后使用 eval 以便我可以使用该库)

我启用的权限只是“存储”。我不确定我是否需要别的东西。

【问题讨论】:

  • 您是否尝试过不使用chrome.runtime.getURL,即xhr.open("GET", "../lib/lit.js", true);
  • .getURL 从扩展根路径解析。你不能去一个根的父母。
  • 这看起来像是一个XY problem 的问题。请更详细地描述您正在尝试实现的目标(而不是您尝试实现目标的方式)。

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


【解决方案1】:

您必须将文件 '../lib/lit.js' 放入 manifest.json 中的数组 web_accessible_resources

这样,您就可以使用chrome.extension.getURL 来获取您的文件。

阅读更多here

【讨论】:

    猜你喜欢
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    • 2014-07-24
    • 2013-01-25
    相关资源
    最近更新 更多