chrome-extension://链接打开:空白

时间:2013-11-16 14:57:01

标签: google-chrome google-chrome-extension

我最近为Enhanced Steam扩展做出了贡献,我发现使用chrome.extension.getURL获取的链接只是打开:空白而不是描述的链接。

我不相信它实际上是扩展的问题,而是Chrome中的一个问题。它提供的链接是有效的(chrome-extension://pimjhgjngccknempdnehdeaihcjbajod/options.html),直接导航工作正常。

我尝试过chrome.tabs.create,但由于脚本修改了预先存在的内容,我发现不允许使用它。

任何帮助或解决方法都将受到赞赏。

2 个答案:

答案 0 :(得分:12)

我将所有必需的文件放入"web_accessible_resources",它解决了我的问题。请参阅#4 https://bugs.chromium.org/p/chromium/issues/detail?id=310870#c4

中的内容

这是Chrome以前的问题并不安全。在构建31.0.1650.57中,Chrome修复此问题,强制将所需文件放入"web_accessible_resources"。在Chrome扩展程序中,许多samples不使用"web_accessible_resources",这些是错误,这些示例将在构建31.0.1650.57中显示“chrome-extension://链接打开:空白”问题

实际上我的Chrome扩展程序MarkView正面临这个问题,我不得不更新其manifest.json以使其适用于此Chrome更新。顺便说一下,MarkView是读取和编写Awesome Markdown文件的工具,它提供的功能包括内容大纲,可排序表和带行号的代码块语法高亮。

答案 1 :(得分:2)

Chrome中的错误似乎是我的错误。如果您没有太多这样的页面要更改,那么您是否可以尝试使用消息传递将要打开的页面传递给后台页面?然后在后台页面中使用window.open或chrome.tabs.create。示例代码如下所示:

//CONTENT SCRIPT

chrome.runtime.sendMessage({greeting: "OpenPage", filename:"somepage.html", querystring:"?aValue="+someVal}, function(response) {});

然后在你的背景页面

//BACKGROUND PAGE

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {  
 if (request.greeting == "OpenPage"){
  open_page(request.filename, request.querystring)
 }

  });


function open_page(filename, querystring){

var pageUrl = chrome.extension.getURL(filename)+querystring;

chrome.tabs.create({'url': pageUrl }, function(tab) {
  // Tab opened.
});
}