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