我的浏览器(firefox)阻止加载任何弹出窗口,并加载在当前选项卡中打开新窗口的链接,除非我明确地说要使用适当的快捷方式(例如,单击中键)将该链接加载到新选项卡或窗口上(在链接上单击或单击鼠标左键ctrl会导致该链接在新标签页上打开,而shift+在新窗口上单击鼠标左键)。
我想创建一个JavaScript函数f()
,该函数在按下链接时运行一些代码(旨在创建链接地址),然后加载已创建的链接,而不会消除上述用户体验。现在,我所拥有的类似于<a href="javascript:void(0)" onclick="f()"/>
,但是单击鼠标中键不起作用(而是加载url javascript:void(0)
),并且上述其他功能也不起作用。
您有解决我问题的想法吗?
谢谢。
您是否尝试过window.open('url')?
请参阅:http : //www.javascript-coder.com/window-popup/javascript-window-open.phtml
另外,据我所知,您无法控制浏览器是否在新标签页或新窗口中打开。这是每个用户不同的浏览器设置。
您也可以尝试删除onclick,然后使用 <a href="javascript:f()"></a>
编辑
使用中间点击打开新标签页而不是执行javascript似乎存在问题:中间点击(新标签页)和javascript链接
如该站点所说,您可以为该元素创建一个id并通过javascript进行绑定。
**来自该链接:
Run Code Online (Sandbox Code Playgroud)<a href="/non/ajax/display/page" id="thisLink">...</a>
然后在您的JS中,通过ID钩住链接以进行AJAX调用。请记住,您需要阻止click事件冒泡。大多数框架都有一个内置的事件杀手,您可以调用它(只需查看其Event类)。
这是jquery中的事件处理和事件杀手:
Run Code Online (Sandbox Code Playgroud)$("#thisLink").click(function(ev, ob) { alert("thisLink was clicked"); ev.stopPropagation(); });
没有jQuery,它可能看起来像这样:
document.getElementById('thisLink').onclick = function(e)
{
//do someting
e.stopPropagation();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12570 次 |
最近记录: |