Программно открывать новые страницы на вкладках

Я пытаюсь "заставить" 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 - это действительно бесполезно.


вы уже пробовали как

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 родительского элемента в дочернем элементе. С помощью этого метода не инициировать событие 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.

С уважением,

Глен