我有一个锚链接
<a id="myanchor" href="http://google.com" target="_blank">Google</a>
Run Code Online (Sandbox Code Playgroud)
如何以编程方式在新选项卡中打开href目标?
Igo*_* G. 103
请尝试以下方法:
$("#myanchor")[0].click()
就如此容易.
GvS*_*GvS 20
调用click
事件(不执行重定向)和导航到该href
位置有所不同.
导航:
window.location = $('#myanchor').attr('href');
Run Code Online (Sandbox Code Playgroud)
在新标签页或窗口中打开:
window.open($('#myanchor').attr('href'));
Run Code Online (Sandbox Code Playgroud)
调用click事件(调用javascript):
$('#myanchor').click();
Run Code Online (Sandbox Code Playgroud)
Tra*_*man 18
即使这篇文章是caput,我认为这是一个很好的演示,可以用jQuery来讨论一些问题,即思考click()
实际上点击一个元素,而不是仅仅发送一个通过DOM冒泡的点击事件.假设您实际上需要模拟点击事件(即用于测试目的等).如果是这种情况,只要您使用现代浏览器就可以使用HTMLElement.prototype.click
(请参阅此处查看方法详细信息以及指向W3规格).这应该适用于几乎所有的浏览器,特别是如果你正在处理链接,window.open
如果你需要,你可以很容易地回归:
var clickLink = function(linkEl) {
if (HTMLElement.prototype.click) {
// You'll want to create a new element so you don't alter the page element's
// attributes, unless of course the target attr is already _blank
// or you don't need to alter anything
var linkElCopy = $.extend(true, Object.create(linkEl), linkEl);
$(linkElCopy).attr('target', '_blank');
linkElCopy.click();
} else {
// As Daniel Doezema had said
window.open($(linkEl).attr('href'));
}
};
Run Code Online (Sandbox Code Playgroud)