Javascript 链接到chrome://history 通过扩展
我正在开发一个chrome扩展,它通过内容脚本将几个按钮插入页面,我希望有一个链接到历史页面的按钮(chrome://history) 这只会打开一个没有URL的空白选项卡:Javascript 链接到chrome://history 通过扩展,javascript,jquery,google-chrome-extension,url-scheme,Javascript,Jquery,Google Chrome Extension,Url Scheme,我正在开发一个chrome扩展,它通过内容脚本将几个按钮插入页面,我希望有一个链接到历史页面的按钮(chrome://history) 这只会打开一个没有URL的空白选项卡: window.open("chrome://history", "_blank"); 如果直接链接到历史记录页面,则会出现错误: <a href="chrome://history" target="_blank">...</a> Not allowed to load local resour
window.open("chrome://history", "_blank");
如果直接链接到历史记录页面,则会出现错误:
<a href="chrome://history" target="_blank">...</a>
Not allowed to load local resource: chrome://history/
不允许加载本地资源:chrome://history/
没有将chrome://*
列为扩展页面支持的方案,这解释了错误,但我只想提供一个指向历史页面的链接。有没有办法做到这一点,即使它有点(或很多)复杂
谢谢
编辑:补充说这是通过内容脚本完成的,我在最初的帖子中没有说明这一点。在Chrome中编写代码,用于打开带有历史记录的内部页面的新活动选项卡
chrome.tabs.create({'url': 'chrome://history', 'active': true});
Chrome中用于打开新的活动选项卡和历史记录内部页面的代码
chrome.tabs.create({'url': 'chrome://history', 'active': true});
Wolf War的答案是正确的,但是,对于内容脚本,还需要额外的步骤 您需要一个页面来处理请求,因为内容脚本不能调用该API。您需要使用:
Wolf War的答案是正确的,但是,对于内容脚本,还需要额外的步骤 您需要一个页面来处理请求,因为内容脚本不能调用该API。您需要使用: 给了我一个想法,向我的分机本身发送一条消息,让它从那里启动标签,这很有效 我将此添加到我的内容脚本中,该脚本在页面上插入按钮:
$("#history_button").click( function() {
chrome.runtime.sendMessage({
type: "OPEN_HISTORY"
});
});
并在我的扩展中添加了相应的侦听器,用于创建选项卡:
chrome.runtime.onMessage.addListener( function(request) {
if (request.type == "OPEN_HISTORY") {
chrome.tabs.create({ "url": "chrome://history", "active": true });
}
});
给了我一个想法,向我的分机本身发送一条消息,让它从那里启动标签,这很有效
我将此添加到我的内容脚本中,该脚本在页面上插入按钮:
$("#history_button").click( function() {
chrome.runtime.sendMessage({
type: "OPEN_HISTORY"
});
});
并在我的扩展中添加了相应的侦听器,用于创建选项卡:
chrome.runtime.onMessage.addListener( function(request) {
if (request.type == "OPEN_HISTORY") {
chrome.tabs.create({ "url": "chrome://history", "active": true });
}
});
我没有澄清这是一个内容脚本。表示内容脚本不能访问任何扩展API,除了部分的。当我运行此命令时,会出现以下错误:
无法读取未定义的属性“create”
@JosephNewman您必须在后台/事件页面发送消息才能执行此操作。我没有说明这是一个内容脚本。表示内容脚本不能访问任何扩展API,除了部分的。当我运行此操作时,它会给我以下错误:无法读取未定义的属性“create”
@JosephNewman您必须在后台/事件页面上发送消息才能执行此操作。澄清:这是在内容脚本中完成的注入。澄清:这是在内容脚本中完成的注入。这正是我让它工作所做的!你在我发帖时回答了这个问题,谢谢!:这正是我让它工作的原因!你在我发帖时回答了这个问题,谢谢!:D