У меня есть якорная ссылка, например
<a id="myanchor" href="#" onclick="location.href='http://google.com'; return false;" target="_blank">Google</a>
Как открыть целевую страницу href на новой вкладке программно?
У меня есть якорная ссылка, например
<a id="myanchor" href="#" onclick="location.href='http://google.com'; return false;" target="_blank">Google</a>
Как открыть целевую страницу href на новой вкладке программно?
Попробуйте следующее:
$("#myanchor")[0].click()
Проще всего.
Существует разница в вызове события click
(не выполняется перенаправление) и перехода в местоположение href
.
Navigate:
window.location = $('#myanchor').attr('href');
Открыть в новой вкладке или окне:
window.open($('#myanchor').attr('href'));
вызвать событие click (вызвать javascript):
$('#myanchor').click();
Несмотря на то, что этот пост является caput, я думаю, что это отличная демонстрация некоторых стен, с которыми можно столкнуться с jQuery, т.е. мышление click()
фактически нажимает на элемент, вместо того, чтобы просто отправлять событие 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'));
}
};
window.open($('#myanchor').attr('href'));
$('#myanchor')[0].click();
Это сработало для меня:
window.location = $('#myanchor').attr('href');
Вы не можете открыть новую вкладку программно, это функциональность браузера. Вы можете открыть ссылку во внешнем окне. Посмотрите здесь
$(":button").click(function () {
$("#anchor_google")[0].click();
});