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

Я пытаюсь "заставить" Safari или IE7 открыть новую страницу с помощью новой вкладки.

Программно я имею в виду что-то вроде:

window.open('page.html','newtaborsomething');

Ответ 1

Вы не можете напрямую управлять этим, потому что это опция, управляемая пользователями Internet Explorer.

Открытие страниц с использованием Window.open с другим именем окна откроется в новом окне браузера, как всплывающее окно, или откроется на новой вкладке, если пользователь настроил браузер для этого.

Ответ 2

В 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/

Ответ 3

Те из вас, кто пытается использовать следующее:

window.open('page.html', '_newtab');

должен действительно смотреть на метод window.open.

Все, что вы делаете, говорит браузеру открыть новое окно NAMED "_newtab" и загрузить в него page.html. Каждая новая загружаемая вами страница загружается в это окно. Однако, если пользователь установил браузер для открытия новых страниц на новых вкладках вместо новых окон, он откроет вкладку. Несмотря на это, он использует одно и то же имя для окна или вкладки.

Если вы хотите, чтобы разные страницы открывались в разных окнах или вкладках, вам нужно будет изменить NAME нового окна/вкладки на что-то другое, например:

window.open('page2.html', '_newtab2');

Конечно, для нового окна/вкладки может быть любое имя типа page1, page2, page3 и т.д. вместо _newtab2.

Ответ 4

Для пользователя, хотят ли они использовать новые вкладки или новые окна, разработчик не должен изменять это поведение. Я не думаю, что вы можете это сделать.

Мой питомец - я ненавижу его, когда сайты заставляют меня открываться в новом окне/вкладке - я вполне способен принять это решение для себя. Особенно, когда они делают это в javascript - это действительно бесполезно.

Ответ 5

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

var open_link = window.open('','_blank');
open_link.location="somepage.html";

Ответ 6

Я узнал в Chrome,

window.open('page.html','_newtab')

будет работать только один раз.

Вы можете использовать:

window.open(ct.getNewHref(),'_newtab' + Math.floor(Math.random()*999999));

Чтобы открыть несколько новых вкладок.

Ответ 7

Код, который я использую с jQuery:

$("a.btn_external").click(function() {
    url_to_open = $(this).attr("href");
    window.open(url_to_open, '_blank');
    return false;
});

Это полезно, чтобы различать события щелчка родителя в дочернем элементе. Используя этот метод, вы не запускаете родительское событие click.

Ответ 8

Если бы вы захотели использовать этот метод, который немного взломан, но предложит желаемую функциональность:

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()

Ответ 9

Это может работать, если вы можете вызвать пакетный файл (я использую 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 для уточнения.

Ответ 10

<a href="#" onclick="location.href='http://www.google.com/'; return false;" target="_self">New Tab Example</a>

Работает в IE7.

Привет,

Гленн