我有像
这样的锚链接<a id="myanchor" href="http://google.com" target="_blank">Google</a>
如何以编程方式在新标签页中打开href目标?
答案 0 :(得分:20)
调用click
事件(不执行重定向)和导航到href
位置有所不同。
导航:
window.location = $('#myanchor').attr('href');
在新标签页或新窗口中打开:
window.open($('#myanchor').attr('href'));
调用click事件(调用javascript):
$('#myanchor').click();
答案 1 :(得分:18)
即使这篇文章是精简版,我认为这是一个很好的演示,可以用jQuery来讨论一些墙,即思考click()
实际点击一个元素,而不只是发送一个点击事件冒泡DOM。假设您实际上需要来模拟点击事件(即用于测试目的等)。如果是这种情况,只要您使用的是现代浏览器,就可以使用HTMLElement.prototype.click
(见here for method details as well as a link to the W3 spec)。这应该适用于几乎所有浏览器,特别是如果你正在处理链接,如果你需要,你可以很容易地回到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'));
}
};
答案 2 :(得分:1)
您无法以编程方式在新标签页中打开,它是一种浏览器功能。您可以在外部窗口中打开链接。看看here
答案 3 :(得分:1)
window.open($('#myanchor').attr('href'));
$('#myanchor')[0].click();
答案 4 :(得分:1)
对我有用:
window.location = $('#myanchor').attr('href');
答案 5 :(得分:0)
$(":button").click(function () {
$("#anchor_google")[0].click();
});