Google Chrome扩展程序:
我生气很简单。请不要责怪我,我不是英国人,我无法阅读和理解所有的扩展文档。我只想做以下事情:
我可以说我的popop.html中有8个不同的网址,当我点击右上方浏览器栏中的图标时,会打开这个网址。
(url)example.com
(url)其他例子等......
点击网址不执行任何操作,target="_blank"
始终会打开一个新标签,但我想在单击其中时在同一个标签页中打开它们。 target="_top"
或target="_self"
似乎无法在这里工作。
我不知道如何编程。我来自php,我需要一个快速的解决方案。
是否有人知道(易于理解)代码段或想法如何在同一个标签中打开我的网址? (在哪里放置什么) (我理解到目前为止的清单定义,但是对于我来说,所有这些java上下都很难理解,只是为了这个“简单”的任务)。
先谢谢 RJ
答案 0 :(得分:11)
我相信Chrome不允许弹出窗口以任何方式打开外部页面。我知道的唯一解决方案是在iframe
文件中放置popup.html
,src
属性设置为popup2.html
,并将所有html放在popup2.html
内。但是,请考虑所有网站在iframe中都不能正常工作。
如果您尝试在当前有效标签中打开网址,请尝试关注:
将以下脚本附加到popup.html文件中:
var hrefs = document.getElementsByTagName("a");
function openLink() {
var href = this.href;
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
var tab = tabs[0];
chrome.tabs.update(tab.id, {url: href});
});
}
for (var i=0,a; a=hrefs[i]; ++i) {
hrefs[i].addEventListener('click', openLink);
}
您需要在清单文件中添加tabs
权限才能生效。
答案 1 :(得分:0)
尽管这是一个老问题,但我将从2018年起发布工作代码。
要在同一窗口中打开来自Chrome扩展程序的锚链接,请将此代码放在popup.js中:
var links = document.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
(function () {
var ln = links[i];
var location = ln.href;
ln.onclick = function () {
chrome.tabs.update({active: true, url: location});
};
})();
}
答案 2 :(得分:0)
您只需要使用 chrome.tabs.update({active: true, url: 'yoursite.com'});
而不是 chrome.windows.create({url:'yoursite.com'});
,该位置将在同一个活动标签中打开
答案 3 :(得分:-1)
如果我理解正确,这可能是一个简单的修复;
对于要在同一选项卡中打开的每个链接,请使用以下HTML:
<a href="LINK" target="_self">Link Name</a>
更简单的写作方式是:
<a href="LINK">Link Name</a>
希望我有所帮助:)