Программно открывать новые страницы на вкладках
Я пытаюсь "заставить" Safari или IE7 открыть новую страницу использование новой вкладки.
программно, я имею в виду что-то вроде:
window.open('page.html','newtaborsomething');
10 ответов
вы не можете напрямую управлять этим, потому что это опция, контролируемая пользователями Internet Explorer.
открытие страниц с помощью окна.открыть с другим именем окна откроется в новом окне браузера, как всплывающее окно,или открыть в новой вкладке, если пользователь настроен браузер.
Вы можете, в Firefox он работает, добавить атрибут target= "_newtab" в якорь, чтобы принудительно открыть новую вкладку.
<a href="some url" target="_newtab">content of the anchor</a>
в JavaScript вы можете использовать
window.open('page.html','_newtab');
говорит, что я частично согласен с Сэмом. Вы не должны заставлять пользователя открывать новые страницы или новую вкладку, не показывая им намек на то, что произойдет до они нажимают на ссылку.
Дайте мне знать ,если он работает и в другом браузере (у меня нет возможности попробовать его другой браузер, чем Firefox на данный момент).
Edit: добавлена ссылка для ie7
Возможно, эта ссылка может быть useful
http://social.msdn.microsoft.com/forums/en-US/ieextensiondevelopment/thread/951b04e4-db0d-4789-ac51-82599dc60405/
те из вас, кто пытается использовать следующее:
window.open('page.html', '_newtab');
должен действительно смотреть на окно.открытый способ.
все, что вы делаете, это говорите браузеру открыть новое окно с именем "_newtab" и загрузить страницу.html в него. Каждая новая страница будет загружаться в это окно. Однако если браузер пользователя настроен на открытие новых страниц в новых вкладках вместо новых окон, он откроет вкладку. Независимо от того, он использует одно и то же имя для окна или вкладки.
Если вы хотите, чтобы разные страницы открывались в разных окнах или вкладках, вам нужно будет изменить имя нового окна / вкладки на что-то другое, например:
window.open('page2.html', '_newtab2');
конечно, имя для нового окна / вкладки может быть любым именем, таким как page1, page2, page3 и т. д. вместо _newtab2.
Это зависит от пользователя, хотят ли они использовать новые вкладки или новые окна, это не дело разработчика, чтобы изменить это поведение. Я не думаю, что ты сможешь это сделать.
Pet peeve мой-я ненавижу, когда сайты заставляют меня открывать в новом окне / вкладке - я вполне способен принять это решение для себя. Особенно когда они делают это в JavaScript - это действительно бесполезно.
я узнал в 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 родительского элемента в дочернем элементе. С помощью этого метода не инициировать событие click родителя.
Если вы хотите, вы можете использовать этот метод, который немного взломан, но предложит желаемую функциональность:
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 с пакетом обновления 2 и IE8... вы можете попробовать IE7, не знаю). Используйте следующее (или подобное) в вашем .файл bat для открытия Windows: Начало "C:\Progra~1 \ стажер~1\iexplore "http://www.site.com". Между кавычкой и C:\Progr - ... .. так далее. В какой-то момент это может начать открывать новые окна (т. е. target="_blank"), а не новые вкладки, но работает до определенного момента; не тестируется. Чтобы использовать это в обычном пакетном файле (CMD.исполняемый), возможно, вам нужно уже открыть окно. Просто поделился кое-чем, на что наткнулся. Отредактировано для уточнения.
<a href="http://www.google.com/" target="_self">New Tab Example</a>
работает в IE7.
С уважением,
Глен