我支持带有一些遗留部分的Web企业级应用程序,其中一些窗口是通过在anchor< href属性中使用window.open命令打开的。 (例如...函数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);
}
有没有办法在后台打开这些新标签(仅当按下ctrl时)?
P.S。我知道在href属性中提供真实的url会更好,但不幸的是,由于特定于应用程序,我没有这样的选择。
谢谢你的帮助!
答案 0 :(得分:0)
每次加载页面时,或每次请求页面(单页应用程序)时,您都可以运行一段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();