模拟单击使用与IE一起使用的Javascript的链接

Tam*_*Tam 22 javascript firefox internet-explorer

我想让java脚本点击页面上的链接..我在网上发现了一些建议添加如下函数:

function fireEvent(obj,evt){

    var fireOnThis = obj;
    if( document.createEvent ) {
      var evObj = document.createEvent('MouseEvents');
      evObj.initEvent( evt, true, false );
      fireOnThis.dispatchEvent(evObj);
    } else if( document.createEventObject ) {
      fireOnThis.fireEvent('on'+evt);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后用以下方法调用:

fireEvent(document.getElementById('edit_client_link'),'click');
Run Code Online (Sandbox Code Playgroud)

这似乎适用于FF,但使用IE它不起作用!

有任何想法吗?

Ano*_*ous 36

我认为你仍然需要调用document.createEventObject - 你只检查它在那里.未经测试的代码如下,但基于它应该工作的文档.

function fireEvent(obj,evt){

    var fireOnThis = obj;
    if( document.createEvent ) {
      var evObj = document.createEvent('MouseEvents');
      evObj.initEvent( evt, true, false );
      fireOnThis.dispatchEvent( evObj );

    } else if( document.createEventObject ) {
      var evObj = document.createEventObject();
      fireOnThis.fireEvent( 'on' + evt, evObj );
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 我继续在IE 7中自己测试它,它的工作原理; 不错的工作!我不喜欢这样一个事实:当有人只是问一个JavaScript问题时,每个人和他们的妈妈总是跳上框架的潮流.是的,我们知道,我们知道,jQuery可以做任何事情并为你做晚餐,但有时候知道如果没有这样的库,事情是如何工作的很好.(我同时使用jQuery和MochiKit,但我仍然喜欢简单的'JavaScript'. (17认同)
  • 如果你动态创建一个元素,这似乎不起作用,至少对于IE8. (2认同)