Я пытаюсь заставить Safari или IE7 открыть новую страницу с новой вкладки .
Программно я имею в виду что-то вроде:
window.open('page.html','newtaborsomething');
Я пытаюсь заставить Safari или IE7 открыть новую страницу с новой вкладки .
Программно я имею в виду что-то вроде:
window.open('page.html','newtaborsomething');
Ответы:
Вы не можете напрямую контролировать это, потому что это опция, контролируемая пользователями Internet Explorer.
Открытие страниц с использованием Window.open с другим именем окна будет открываться в новом окне браузера как всплывающее окно, ИЛИ открываться в новой вкладке, если пользователь настроил браузер для этого.
В Firefox вы можете добавить атрибут target = "_ newtab" к привязке, чтобы принудительно открыть новую вкладку.
<a href="some url" target="_newtab">content of the anchor</a>
В javascript вы можете использовать
window.open('page.html','_newtab');
Сказал, что частично согласен с Сэмом. Вы не должны заставлять пользователя открывать новые страницы или новую вкладку, не показывая им подсказки о том, что произойдет, прежде чем они нажмут на ссылку.
Сообщите мне, работает ли он и в другом браузере (на данный момент у меня нет возможности попробовать его в другом браузере, кроме Firefox).
Изменить: добавлена ссылка для ie7. Возможно, эта ссылка может быть полезна
http://social.msdn.microsoft.com/forums/en-US/ieextensiondevelopment/thread/951b04e4-db0d-4789-ac51-82599dc60405/
Те из вас, кто пытается использовать следующее:
window.open('page.html', '_newtab');
действительно стоит посмотреть на метод window.open.
Все, что вы делаете, - это указываете браузеру открыть новое окно, НАЗВАННОЕ «_newtab», и загрузить в него page.html. Каждая новая страница, которую вы загружаете, будет загружаться в это окно. Однако, если в браузере пользователя настроено открытие новых страниц в новых вкладках, а не в новых окнах, вкладка откроется. В любом случае, для окна или вкладки используется одно и то же имя.
Если вы хотите, чтобы разные страницы открывались в разных окнах или вкладках, вам придется изменить ИМЯ нового окна / вкладки на другое, например:
window.open('page2.html', '_newtab2');
Конечно, имя нового окна / вкладки может быть любым, например, page1, page2, page3 и т. Д. Вместо _newtab2.
Пользователь сам решает, хотят ли они использовать новые вкладки или новые окна, изменение этого поведения - не обязанность разработчика. Я не думаю, что ты сможешь это сделать.
Моя любимая мозоль - я ненавижу, когда сайты заставляют меня открываться в новом окне / вкладке - я вполне способен принять это решение для себя. В частности, когда они делают это в javascript - это действительно бесполезно.
Вы уже пробовали подобное
var open_link = window.open('','_blank');
open_link.location="somepage.html";
Я узнал в Chrome,
window.open('page.html','_newtab')
будет работать только один раз.
Ты можешь использовать:
window.open(ct.getNewHref(),'_newtab' + Math.floor(Math.random()*999999));
Чтобы открыть несколько новых вкладок.
Код, который я использую с jQuery:
$("a.btn_external").click(function() {
url_to_open = $(this).attr("href");
window.open(url_to_open, '_blank');
return false;
});
Это полезно, чтобы различать события щелчка родительского элемента в дочернем элементе. Используя этот метод, вы не запускаете родительское событие click.
<a href="page.html" target="_blank">foo</a>
Это работает на 100%
window.open('http://www.google.com/','_newtab' + Date.now());
Если вы хотите, вы можете использовать этот метод, который немного взломан, но будет предлагать желаемую функциональность:
jQuery('<a/>', {
id: 'foo',
href: 'http://google.com',
title: 'Become a Googler',
rel: 'external',
text: 'Go to Google!',
target:'_blank',
style:'display:none;'
}).appendTo('#mySelector');
$('#foo').click()
Это может сработать, если вы можете вызвать командный файл (я использую php с XP sp2 и IE8 ... вы можете попробовать IE7, не знаю). Используйте следующее (или подобное) в вашем .bat файле, чтобы открыть Windows: Пуск "" C: \ Progra ~ 1 \ Intern ~ 1 \ iexplore "http://www.site.com". Между кавычкой и C: \ Progr ... и т. Д. Нет пробела. В какой-то момент это может начать открывать новые окна (например, target = "_ blank"), а не новые вкладки, но работает до определенного момента; не тщательно протестирован. Чтобы использовать это в обычном пакетном файле (CMD.exe), вам, вероятно, нужно, чтобы окно уже было открыто. Просто поделился тем, на что наткнулся. ИЗМЕНИТЬ для пояснения.
<a href="http://www.google.com/" target="_self">New Tab Example</a>
Работает в IE7.
С Уважением,
Гленн