Вопрос

Я пытаюсь «заставить» 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 в него. Каждая новая страница, которую вы загружаете, будет загружена в это окно. Однако, если у пользователя настроен браузер на открытие новых страниц в новых вкладках вместо новых окон, он откроет вкладку. В любом случае, оно использует одно и то же имя для окна или вкладки.

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

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

Это работает на 100%

window.open ('http://www.google.com/','_newtab' + Date.now ());

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

С уважением,

Гленн

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top