gpt4 book ai didi

javascript - 当 anchor 的属性 "href"包含 javascript 时在后台打开链接

转载 作者:行者123 更新时间:2023-11-28 07:38:49 25 4
gpt4 key购买 nike

我支持带有一些遗留部分的Web企业级应用程序,其中一些窗口是通过使用 anchor 的href属性内的window.open命令打开的。 (例如... function MyFunction(url, id) { window.open(url, id) ...)

现在我必须通过按 ctrl + 单击(或中键单击)在后台选项卡中打开链接,但对于 IE(9、10、11),它始终会成为焦点。在 Chrome 中同样可以正常工作。

这是一个可以测试的链接:

<a href="javascript:OpenNewTab('http://google.com', 1)"> Open google tab </a>
OpenNewTab = function(url, id){
window.open(url, id);
}

http://jsfiddle.net/hj3gud9j/

有什么方法可以在后台打开这些新选项卡(仅当按下 ctrl 时)?

附注我知道最好在 href 属性内提供真实的 url,但不幸的是,由于应用程序特定,我没有这样的选项。

提前感谢您的帮助!

最佳答案

您可以在每次加载页面或每次请求页面(单页应用程序)时运行一段 JavaScript。

此代码功能不完整,但我希望您能明白我的意思:)

function createListener(url){
return function(event){
if(event.ctrlKey){
console.log(url); //Here you can do anything you want with the url
}
event.preventDefault();
}
}

function runOnce(){
var allAnchors = document.getElementsByTagName('a');
for(var i = allAnchors.length; i--;){
var a = allAnchors[i],
href = a.getAttribute('href'),
split = href.split('('),
url = split[1].split(',')[0];
a.href = '#';
a.addEventListener('click', createListener(url));
}
}
runOnce();

jsfiddle

关于javascript - 当 anchor 的属性 "href"包含 javascript 时在后台打开链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28294257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com