需要从Chrome扩展程序的页面中直接链接到Chrome内部页面。

12

我刚刚连续花费了7个小时尝试寻找一种直接链接到Chrome内部页面的方法。目前我已经放弃了。我只是告诉别人"右键点击并在新标签页中打开"。

我尝试了各种方法,从HTML到CSS再到Javascript,但都没有效果。当我点击链接时什么也没发生,即使右键点击链接并在新标签页中打开它很完美地工作。

Javascript无法实现的尝试:

<div class="links">
  <a href="chrome://net-internals/" onclick="window.open('chrome://net-internals/');">TESTAA</a>
</div>

<div class="links">
  <a href="chrome://net-internals/" onclick="window.location('chrome://net-internals/');">TESTAA</a>
</div>

点击时没有出现任何错误页面,没有反应。如果你使用target="_blank"强制在新标签页中打开,它只会打开一个空白标签页。

更新!已解决!

----- 步骤 1 -----

将以下代码放置在background.html页面中(background.html在manifest.json中被调用):

function openNetInternals() { 
  chrome.tabs.create({url: 'chrome://net-internals/'});
}

----- 步骤 2 -----

将下面的代码放入链接中(在HTML页面中):

<a href="chrome://net-internals/" onclick="chrome.extension.getBackgroundPage().openNetInternals()">Net</a>

----- 步骤 3 -----

确保刷新扩展程序。 现在它会正常工作。

3个回答

4
这个链接是从您的扩展程序还是您的网站上可用的?如果是从扩展程序中,请尝试使用chrome.tabs模块:chrome.tabs
chrome.tabs.create({url: 'chrome://net-internals/'});

在后台页面创建一个像这样的函数:

function openNetInternals() {
   chrome.tabs.create({url: 'chrome://net-internals/'});
}

当链接被点击时,您可以从自定义起始页调用它,如下所示:

chrome.extension.getBackgroundPage().openNetInternals();

相关文档在这里

好的,至少我用那段代码得到了一些新东西。这里是错误页面。**此网页未找到 找不到网页的网址: chrome-extension://svbtkuerandomlettersdjkfhsdh/chrome.extension.getBackgroundPage().openNetInternals();** - user1158415
好的,我把步骤2改成了这样,想着也许这就是你的意思:**-----2-----** 将这段代码放在我的链接中:<a href="chrome://net-internals/" onclick="chrome.extension.getBackgroundPage().openNetInternals();">Net</a> 但是,当我点击链接时,仍然没有任何反应。 - user1158415
哦,好的让我重新加载扩展程序。还有这是屏幕截图(正在上传)goo.gl/2dc38 - user1158415
我不认为有这个必要 :) 我很高兴能够帮助。 - Konrad Dzwinel
我在你的个人资料中发现了许多其他很好的建议,并给了一些赞 - 而且是诚实的,因为这是很好的信息。阅读你的帖子就像再次上大学!=P - user1158415
显示剩余13条评论

2
在新标签页中打开chrome://链接
chrome.tabs.create({url: 'chrome://net-internals/'});

在同一标签页中打开
chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
    var tab_id = tabs[0]['id'];
    chrome.tabs.update(tab_id, {'url':'chrome://net-internals/'});
});

1

尝试这种方式:

<a href="#" onclick="chrome.tabs.create({url: 'chrome://net-internals'});">Net</a>

2
注意:在清单中不需要请求“tabs”权限即可使用此函数。- http://code.google.com/chrome/extensions/tabs.html#method-create - Konrad Dzwinel
为什么这不起作用?这是我使用的代码: <a href="chrome://net-internals" target="_blank" onclick="chrome.tabs.create({url: 'chrome://net-internals'});">TESTBB</a> - user1158415
你在哪里使用这个链接?上下文可能很重要。是在弹出窗口中吗?还是在扩展配置页面上? - Konrad Dzwinel
2
尝试向后台页面发送请求,然后从那里调用chrome.tabs.create - dfsq
我找到了这个http://code.google.com/chrome/extensions/extension.html#method-sendRequest和这个http://www.toptip.ca/2009/12/google-chrome-extensions-example-of-how.html,只是我不确定我发送或接收的数据是什么,只要链接打开Chrome的URL,如chrome://net-internals。 - user1158415
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接