Webkit 下的模拟点击问题

这几天都在抢天猫的金砖,用火狐的 console 面板,通过 setInterval 定时执行点击模拟,大家都用的很爽。

document.getElementById("J_Lucky").click();

不过发现 Chrome 下并不奏效,后来发现以下问题:

  • input 和 button 可以使用 document.getElementById(“J_Lucky”).click(); 并且是全兼容的,支持触发通过 onclick/addEventListener/attachEvent 等形式绑定的事件
  • 除 webkit 引擎外,其他浏览器均支持非 input 和 button 元素的 .click() 事件
  • webkit 引擎不支持除 input 和 button 以外元素的点击模拟,需要通过 dispatch 方法实现
    function dispatch(c, b) {
        try {
            var a = document.createEvent("Event");
            a.initEvent(b, true, true);
            c.dispatchEvent(a)
        } catch (d) {
            alert(d)
        }
    }
    dispatch(document.getElementById("J_Lucky"), "click");

参考资料: http://www.cnblogs.com/snandy/archive/2011/07/31/2122516.html

推荐阅读

  • 站长军团及 Chrome 插件新版发布 (27)
  • 站长军团 Chrome 扩展插件 v1.0.0 (20)
  • 让 Chrome 崩溃的 CSS 代码 (19)
  • 表单中的隐藏域重置 (11)
  • 浏览器简史 (14)
  • Fuck Firefox,Hello Chrome! (26)
  • Spoon,绿色低碳的浏览器沙盒插件 (14)
  • Google Chrome 中文版最小字体限制 (22)
© 2010 芒果小站 | 固定链接 | 没有评论 | 标签 Chrome, dispatchEvent, Webkit

你可能感兴趣的:(前端,chrome,webkit,dispatchEvent)