У меня есть две (или более) ссылки. Например: http://google.com и http://yahoo.com.
Как я могу сделать их открытыми, когда я нажимаю на одну ссылку?
Например, ссылка под названием "нажмите здесь", которая при нажатии откроет два разных пустых окна.
У меня есть две (или более) ссылки. Например: http://google.com и http://yahoo.com.
Как я могу сделать их открытыми, когда я нажимаю на одну ссылку?
Например, ссылка под названием "нажмите здесь", которая при нажатии откроет два разных пустых окна.
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. Обычно это не хорошая идея, но иногда она необходима.
Я сделал это простым способом:
<a href="http://virtual-doctor.net" onclick="window.open('http://runningrss.com');
return true;">multiopen</a>
Он откроет runningrss в новом окне и virtual-doctor в том же окне.
Возможно, вы захотите разместить свой HTML-код, чтобы пользователь мог открыть все ссылки, даже если JavaScript не включен. (Мы называем это прогрессивным улучшением.) Если так, что-то вроде этого может работать хорошо:
<ul class="yourlinks">
<li><a href="http://www.google.com/"></li>
<li><a href="http://www.yahoo.com/"></li>
</ul>
$(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 также не проверял его, поэтому его, вероятно, пронизано ошибками.)
Вы можете открыть несколько окон одним нажатием... Попробуйте это.
<a href="http://--" onclick=" window.open('http://--','','width=700,height=700'); window.open('http://--','','width=700,height=500'); ...// add more">Click Here</a>`
Я создал немного гибридного подхода между Полом и Адамом:
Ссылка, которая открывает массив ссылок, уже находится в 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/
Вам нужно разблокировать всплывающие окна для вашего браузера, и код может работать.
хром://настройки/contentExceptions # всплывающие окна