我支持带有一些遗留部分的Web企业级应用程序,其中某些窗口是通过使用anchor的href属性中的window.open命令打开的。(例如 ...function MyFunction(url, id) { window.open(url, id) ...)
现在我必须通过按 ctrl + 单击(或中键单击)在后台选项卡中打开链接,但对于 IE(9、10、11),它总是变得专注。在铬中同样有效。
这是一个可以测试它的链接:
<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();