单击并启动<;a>;元素JavaScript

单击并启动<;a>;元素JavaScript,javascript,hyperlink,click,Javascript,Hyperlink,Click,我想用JavaScript启动一个元素,不仅是为了调用侦听器,也是为了打开链接,就像用户用鼠标所做的那样。 我在谷歌、Stack…、Mozilla中搜索了很多,我总是发现这是不可能的,但一定有办法做到这一点^^ 我还在Mozilla中搜索了一个高级选项来禁用它或类似的东西,但我什么也没找到 我希望像真正的用户一样工作的代码单击: <a href="www.mysite.com" id="MyIdElement">Click here</a> $('#MyIdElement

我想用JavaScript启动一个元素,不仅是为了调用侦听器,也是为了打开链接,就像用户用鼠标所做的那样。 我在谷歌、Stack…、Mozilla中搜索了很多,我总是发现这是不可能的,但一定有办法做到这一点^^ 我还在Mozilla中搜索了一个高级选项来禁用它或类似的东西,但我什么也没找到

我希望像真正的用户一样工作的代码单击:

<a href="www.mysite.com" id="MyIdElement">Click here</a>
$('#MyIdElement').trigger('click');
我知道Mozilla不允许在

click()方法不会使元素像收到真实的鼠标单击一样启动导航。

我可以自由使用Mozilla以外的其他浏览器。我的最终目标是制作一个浏览器附加组件,它可以像真正的用户一样在网页上导航,而不是使用
windows.location.href
,因为它不会发送像referer这样的所有信息


谢谢

如果我理解正确,您希望在单击“a”元素时触发java脚本函数。使用以下代码,您将在单击“a”元素并加载google站点时生成警报

<!DOCTYPE html>
<html lang="de">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Test</title>
    <script>
        function myFunction(){
            window.alert("Test");
            };
    </script>
  </head>
  <body>
    <a href="http://google.com" onclick="myFunction()">Go to Google</a>
  </body>
</html>

试验
函数myFunction(){
窗口警报(“测试”);
};

整个过程都是通过这个代码块运行的,只需单击一下就可以运行定义的函数。我确信这在Chrome和IE上起作用。如果我理解错了您的问题,请纠正我,我将尝试正确回答。

您可以使用以下脚本直接在dom元素上模拟事件鼠标单击(或其他)。这将模拟用户如何单击您的链接

例如,请注意,点击链接将在页面加载后立即执行:

这将适用于Chrome和FireFox(绕过其限制)


$('#myidement')。触发器('click');在Chrome上工作。@Valerio这在Mozilla上不工作。在Chrome上,这是像真正的用户点击一样执行的吗?这正是我想要的。你知道为什么Mozilla和其他浏览器在触发
元素上的“click”事件时禁用“real click for navigate to a webpage”吗?@dada17xs IMO出于安全原因。但我在任何文件中都找不到参考资料,所以请恕我直言。
<!DOCTYPE html>
<html lang="de">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Test</title>
    <script>
        function myFunction(){
            window.alert("Test");
            };
    </script>
  </head>
  <body>
    <a href="http://google.com" onclick="myFunction()">Go to Google</a>
  </body>
</html>
var _triggerMouseEvent = function(node, eventType) {
  // create a syntetic mouse event
  var clickEvent = document.createEvent('MouseEvents');
  clickEvent.initEvent(eventType, true, true);
  // dispatch event on your dom element
  node.dispatchEvent(clickEvent);
};

var elmDom = document.getElementById('MyIdElement');

_triggerMouseEvent(elmDom, 'click');