Как сделать ссылку открывать несколько страниц при нажатии
У меня есть две (или более) ссылки. Например: http://google.com и http://yahoo.com.
Как я могу сделать их открытыми, когда я нажимаю на одну ссылку?
Например, ссылка под названием "нажмите здесь", которая при нажатии откроет два разных пустых окна.
Ответы
Ответ 1
HTML:
<a href="#" class="yourlink">Click Here</a>
JS:
$('a.yourlink').click(function(e) {
e.preventDefault();
window.open('http://yoururl1.com');
window.open('http://yoururl2.com');
});
window.open
также может принимать дополнительные параметры. См. Их здесь: http://www.javascript-coder.com/window-popup/javascript-window-open.phtml
Вы также должны знать, что window.open иногда блокируется блокировщиками всплывающих окон и/или рекламными фильтрами.
Дополнение от Paul ниже: этот подход также влияет на включенность JavaScript. Обычно это не хорошая идея, но иногда она необходима.
Ответ 2
Я сделал это простым способом:
<a href="http://virtual-doctor.net" onclick="window.open('http://runningrss.com');
return true;">multiopen</a>
Он откроет runningrss в новом окне и virtual-doctor в том же окне.
Ответ 3
Возможно, вы захотите разместить свой HTML-код, чтобы пользователь мог открыть все ссылки, даже если JavaScript не включен. (Мы называем это прогрессивным улучшением.) Если так, что-то вроде этого может работать хорошо:
HTML
<ul class="yourlinks">
<li><a href="http://www.google.com/"></li>
<li><a href="http://www.yahoo.com/"></li>
</ul>
JQuery
$(function() { // On DOM content ready...
var urls = [];
$('.yourlinks a').each(function() {
urls.push(this.href); // Store the URLs from the links...
});
var multilink = $('<a href="#">Click here</a>'); // Create a new link...
multilink.click(function() {
for (var i in urls) {
window.open(urls[i]); // ...that opens each stored link in its own window when clicked...
}
});
$('.yourlinks').replaceWith(multilink); // ...and replace the original HTML links with the new link.
});
Этот код предполагает, что вы хотите использовать только один "многоканальный", например, на странице. (Ive также не проверял его, поэтому его, вероятно, пронизано ошибками.)
Ответ 4
Вы можете открыть несколько окон одним нажатием... Попробуйте это.
<a href="http://--" onclick=" window.open('http://--','','width=700,height=700'); window.open('http://--','','width=700,height=500'); ...// add more">Click Here</a>`
Ответ 5
Я создал немного гибридного подхода между Полом и Адамом:
Ссылка, которая открывает массив ссылок, уже находится в html. Jquery просто создает массив ссылок и открывает каждый, когда нажата кнопка "открыть все":
HTML:
<ul class="links">
<li><a href="http://www.google.com/"></a></li>
<li><a href="http://www.yahoo.com/"></a></li>
</ul>
<a id="open-all" href="#">OPEN ALL</a>
Jquery:
$(function() { // On DOM content ready...
var hrefs = [];
$('.links a').each(function() {
hrefs.push(this.href); // Store the URLs from the links...
});
$('#open-all').click(function() {
for (var i in hrefs) {
window.open(hrefs[i]); // ...that opens each stored link in its own window when clicked...
}
});
});
Вы можете проверить это здесь:
https://jsfiddle.net/daveaseeman/vonob51n/1/
Ответ 6
Вам нужно разблокировать всплывающие окна для вашего браузера, и код может работать.
хром://настройки/contentExceptions # всплывающие окна
![Настройки браузера Chrome]()