如果我发起一个点击jQuery的window.open()
,它会被弹出窗口拦截器阻止,如果我手动点击窗口不会被阻止。这两种浏览器有何不同?浏览器如何区分用户点击和编程点击之间的区别?
15
A
回答
6
Firefox的实现,这是在长度上this bug讨论,并this other bug有一些更有趣的背景,包括哪些长度网站会以强加给不知情的用户不想要的弹出窗口(在这种情况下经历:从主叫window.open()
在图像load
事件中)。如果你在Bugzilla中搜索,你会发现Mozilla的人花了好几年的时间才能正常工作,例如here's a bug from 2001。
它目前的工作方式是这样的:当Firefox从操作系统获得了点击事件,在JavaScript的(寻找dom.disable_open_click_delay
在about:config
)启用了一定的时间window.open()
。如果您从代码中调用click()
事件而没有发生用户点击,则第一步中,不会出现window.open()
的启用,尽管对window.open()
的调用本身将成功to stop sites detecting that you have popup blocking enabled。
我不确定其他浏览器是如何实现这个功能的,但是如果它有很大的不同,我会很惊讶。
1
我相信通过jQuery调用click
实际上并不真正触发单击元素,而是调用监听点击的函数。所以尽管你打电话给click()
你实际上只是在调用一个函数。
当用户点击时,这是一个真正的点击。
实施例:
var handler = function() {
alert('hi');
};
$('#example').on('click', handler);
$('#example').click(); // really just calls handler();
0
浏览器的本地代码处理实际鼠标点击事件(从操作系统)并创建浏览器事件对象。在浏览器的本机代码中,浏览器知道这个事件是由一个真正的鼠标点击创建的。
我的猜测是,有一些隐藏的数据(无法从JavaScript访问)附加到事件,让浏览器跟踪事件是否是通过鼠标点击发起的,尽管可能有其他的实现机制太。
相关问题
- 1. 用Selenium点击并用机器人点击之间的区别
- 2. mousedown和点击jquery之间的区别
- 3. 如何区分用户的明确点击和JavaScript的点击?
- 4. JavaFX:区分点击和点击拖动
- 5. 请告诉我。对使用(“点击”和。点击之间的区别
- 6. 点击监听器与jQuery和Javascript之间的区别
- 7. 如何保持一个分区打开后点击浏览页面之间
- 8. 区分mouseup mousedown和点击
- 9. 如何区分拖动和点击onTouchEvent()?
- 10. 浏览器之间的区别
- 11. 可点击的ImageView和ImageButton之间的区别
- 12. jQuery中的绑定和点击之间的确切区别?
- 13. 使用javascript/jquery区分父级和子级之间的点击
- 14. 如何根据点击的DOM节点区分点击事件?
- 15. 区分点击并按住并点击
- 16. 什么。点击()和.onclick()在JavaScript之间的区别?
- 17. f5,CTRL + F5和点击或刷新按钮之间的区别?
- 18. `$(document).on(“click”,“a”`和`$(“a”)之间的区别点击(`
- 19. 区分机器人鼠标点击和人类鼠标点击
- 20. 如何找到Chrome浏览器和Android原生浏览器之间的区别
- 21. 击:$(猫)和之间的区别“美元”
- 22. JComboBox - ActionPerformed - 如何区分用户和代码之间的区别?
- 23. Rails:点击部分分区
- 24. Javascript/jquery如何区分触发和用户点击?
- 25. 用于AudioQueue的缓冲区之间的点击/敲击
- 26. 点击和鼠标点击有什么区别?
- 27. 如何区分UITableView自定义部分点击和部分第一行点击?
- 28. 区分程序设置复选框和用户点击它
- 29. Selenium WebDriver“Click”和JavascriptExecutor之间的区别点击下面两个语句之间的执行过程区别点击
- 30. 硒 - 点击和ClickAndWait有什么区别?
这里是一个[jsfiddle](http://jsfiddle.net/twMSG/1/)来演示。它会尝试在网页加载时弹出,但会被阻止。以编程方式调用'click'事件会导致它被阻塞,但如果在另一个单击事件中调用它,则会通过该事件。 – sachleen