Как открыть новую вкладку в JavaScript без перехода на новую вкладку? - программирование
Подтвердить что ты не робот

Как открыть новую вкладку в JavaScript без перехода на новую вкладку?

Как открыть новую вкладку с помощью javascript без перехода на новую вкладку? Например, когда пользователь нажимает на ссылку, открывается новая вкладка, но пользователь должен оставаться на текущей вкладке.

4b9b3361

Ответ 1

Веб-браузер автоматически фокусируется на новой вкладке, но вы можете вызвать фокус назад:

function openWindow( url )
{
  window.open(url, '_blank');
  window.focus();
}

<a href="http://www.example.com/" onclick="javascript:openWindow(this.href);return false;">Click Me</a>

Ответ 2

К сожалению, вы не можете этого сделать, но можете приблизиться. Вы можете открыть новое окно, и если вы это сделаете без указания размеров окна или функций окна, большинство современных браузеров откроет новую вкладку (в зависимости от пользовательских настроек, но тогда вы хотите делать то, что пользователь предпочитает в любом случае, правильно?). Так что просто window.open(url) или window.open(url, name), если вы собираетесь использовать имя для чего-то. Не забудьте сделать это в прямом ответе на инициированное пользователем событие, иначе блокировщик всплывающих окон браузера, вероятно,... заблокирует всплывающее окно.: -)

Живой пример

Относительно сосредоточения внимания на вашем окне... удачи в этом. Вы можете позвонить window.focus() после window.open(...), но по моему опыту он обычно не работает.

Бросив его туда: если вы сделаете то, что пользователь взаимодействует с подлинной ссылкой с URL-адресом, пользователь может решить, следует ли открывать его на новой вкладке, в новом окне, независимо от того, нужно ли ее фокусировать (если они достаточно сложны, чтобы знать Shift + Click и Ctrl + Shift + Click или меню правой кнопки мыши).

Ответ 3

К сожалению, вы не можете сделать это во всех браузерах, но вы можете сделать это в Chrome, если вы реализуете расширение браузера. Как манипулировать с вкладками в Chrome с помощью javascript:

http://code.google.com/chrome/extensions/tabs.html

chrome.tabs.create(object createProperties, function callback)
    Creates a new tab. Note: This function can be used without requesting the 'tabs' permission in the manifest.
Parameters
    **createProperties** ( object )
    **windowId** ( optional integer )
       The window to create the new tab in. Defaults to the current window.
    **index** ( optional integer )
       The position the tab should take in the window. The provided value will be clamped to between zero and the number of tabs in the window.
    **url** ( optional string )
       The URL to navigate the tab to initially. Fully-qualified URLs must include a scheme (i.e.    'http://www.google.com', not 'www.google.com'). Relative URLs will be relative to the current page within the extension. Defaults to the New Tab Page.
    **selected** ( optional boolean )
       Whether the tab should become the selected tab in the window. Defaults to true
    pinned ( optional boolean )
       Whether the tab should be pinned. Defaults to false
    **callback** ( optional function )

Ответ 4

Это пользовательские настройки, вы не можете изменить это поведение из JS.

Ответ 5

(function(a){
document.body.appendChild(a);
a.setAttribute('href', location.href);
a.dispatchEvent((function(e){
    e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
    return e
}(document.createEvent('MouseEvents'))))}(document.createElement('a')))

Ответ 6

Сообщение устарело, но без 100% правильного ответа.

РЕШЕНИЕ ДЛЯ ВСЕХ БРАУЗЕРОВ:

вы можете открыть новую вкладку для тех же доменных URL-адресов через:

window.open("newurl.php", "_blank");

и для междоменных новых вкладок вы должны создать простой локальный script, например:

в новом файле "redirect.php" вы передаете параметр (целевой новый URL-адрес вкладки), подобный этому

<?php
   $newURL=$_GET['u'];
   header('Location: '.$newURL);
؟>

и вы можете создать новую вкладку с любым целевым URL с помощью:

window.open("redirect.php?u=http://www.google.com", "_blank");

:)

его решение на моем веб-сайте. и работать с любыми

Ответ 7

Для меня, используя

window.open("https://stackoverflow.com");

работал отлично. Это зависит от того, какой браузер вы используете, какой операционной системы и ваших личных предпочтений.

Chrome, Internet Explorer и Firefox открыли новую вкладку. Извините, если это не работает для вас.

(Просто понял, что это старый поток)