使用ctrlKey = true发送鼠标事件并不适用于IE11和FireFox

时间:2015-10-19 11:09:32

标签: javascript internet-explorer firefox mouseevent dispatch

ctrlKey标记为true 时,我试图在IE / FireFox浏览器中模拟鼠标点击事件。 我已经搜索了很多,但我找不到为什么我的代码不起作用。 应该发生什么: - triggerClick应该点击链接(在IE和FF中都没问题) - triggerClickCtrl应该在新的选项卡中打开链接(在IE中 - 它与buttom triggerClick相同,而在FF中它什么都不做)。 - triggerClickShift应该在新窗口中打开链接(在IE中 - 它与buttom triggerClick相同,在FF中它什么也不做)。 注意:此代码适用于chrome,但它在IE11和FireFox中不起作用。

有什么建议吗? 感谢。



function triggerClick()
    {
        simulateClick(false, false, false);
    }


    function triggerClickCtrl()
    {
        simulateClick(true, false, false);
    }

    function triggerClickShift()
    {
        simulateClick(false, true, false);
    }

    var simulateClick = function (ctrl, shift, isMiddle) {
        var evt = document.createEvent('MouseEvents');
        evt.initMouseEvent('click', true, true, window, 0, 0, 0, 10, 10, ctrl, false, shift, false, isMiddle ? 1 : 0, null );
        document.getElementById('bingLink').dispatchEvent(evt);
    }

  

<!DOCTYPE html>
<html>
<p>


<p><a id = 'bingLink' href = "http://www.bing.com">Bing</a></p>


<button onclick=triggerClick()>triggerClick</button>
<button onclick=triggerClickCtrl()>triggerClickCtrl</button>
<button onclick=triggerClickShift()>triggerClickShift</button>


</body>

</html>
&#13;
&#13;
&#13;

0 个答案:

没有答案