JavaScript 点击事件

标签 javascript

我的浏览器 (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 似乎存在问题:middle click (new tabs) and javascript links

正如该网站所说,您可以为元素创建一个 id 并通过 javascript 绑定(bind)它。

**取自该链接:

<a href="/non/ajax/display/page" id="thisLink">...</a>

And then in your JS, hook the link via it's ID to do the AJAX call. Remember that you need to stop the click event from bubbling up. Most frameworks have an event killer built in that you can call (just look at its Event class).

Here's the event handling and event-killer in jquery:

$("#thisLink").click(function(ev, ob) {
    alert("thisLink was clicked");
    ev.stopPropagation();
});

如果没有 jQuery,它可能看起来像这样:

document.getElementById('thisLink').onclick = function(e)
{
     //do someting
     e.stopPropagation();
}

关于JavaScript 点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7868830/

相关文章:

javascript - 如何使用具有关联数组的 API 填写表单?

javascript - 扩展 css div 的问题

javascript:如何检查元素是否可点击

javascript - 使用 Flask 数据生成 Javascript。馊主意?

javascript - Canvas ,我的橡皮擦不起作用

php - 如何阅读网页的标题部分?

javascript - 查找字符串js中添加的字符

javascript - BigCommerce 模板自定义字段

javascript - 如何在迭代数组时等待回调

javascript - 使用 jquery 比较动态测验中的响应