Я пытаюсь "заставить" 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.
Все, что вы делаете, говорит браузеру открыть новое окно NAMED "_newtab" и загрузить в него page.html. Каждая новая загружаемая вами страница загружается в это окно. Однако, если пользователь установил браузер для открытия новых страниц на новых вкладках вместо новых окон, он откроет вкладку. Несмотря на это, он использует одно и то же имя для окна или вкладки.
Если вы хотите, чтобы разные страницы открывались в разных окнах или вкладках, вам нужно будет изменить NAME нового окна/вкладки на что-то другое, например:
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.
Если бы вы захотели использовать этот метод, который немного взломан, но предложит желаемую функциональность:
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, dunno). Используйте следующие (или похожие) в своем .bat файле, чтобы открыть Windows: Начать "C:\Progra ~ 1\Intern ~ 1\iexplore" http://www.site.com ". Между кавычкой и C:\Progr... нет пробела и т.д. В какой-то момент это может начать открывать новые окна (т.е. Target =" _ blank"), а не новые вкладки, но работает до определенной точки; не подвергались экстенсивному тестированию. Чтобы использовать это в обычном пакетном файле (CMD.exe), вам, вероятно, нужно открыть окно. Просто поделившись чем-то, на что я наткнулся. EDITED для уточнения.
<a href="#" onclick="location.href='http://www.google.com/'; return false;" target="_self">New Tab Example</a>
Работает в IE7.
Привет,
Гленн