Firefox javascript bookmarklet открыть вкладку в фоновом режиме - PullRequest
1 голос
/ 29 июня 2009

Я написал букмарклет для поиска слова в китайском словаре:

javascript:Qr=document.getSelection();if(!Qr){void(Qr=prompt('%E8%AF%8D%E8%AF%AD',''))};if(Qr)(function(){window.open('http://nciku.com/search/all/'+Qr);})();

Откроется новая вкладка с результатами поиска для выбранного вами слова или слова, которое вы вводите в командной строке. Есть ли способ загрузить новую вкладку в фоновом режиме? Я хотел бы сосредоточиться на странице, на которую я смотрю, и посмотреть результаты поиска позже.

В Firefox есть опция «Когда я открываю ссылку в новой вкладке и сразу переключаюсь на нее», это не помогает.

Edit: обратите внимание, что это для моего использования, поэтому ответ, который говорит мне, как изменить настройки Firefox (3.0.11) для этого, также будет работать. Также я попробовал следующую модификацию, но она все еще фокусируется на новой вкладке.

javascript:Qr=document.getSelection();if(!Qr){void(Qr=prompt('%E8%AF%8D%E8%AF%AD',''))};if(Qr)(function(){var%20oldWin=this;window.open('http://nciku.com/search/all/'+Qr);oldWin.focus()})();

Редактировать 2:

Оглядываясь вокруг, чтобы увидеть, смогу ли я найти ответ, я вижу этого парня, у которого возникла противоположная проблема (новые вкладки не получают фокуса, но он хочет, чтобы он у них был), но без разрешения:

Возможно установить фокус вкладки в IE7 из JavaScript

Там, очевидно, говорят о цели _tab в HTML 5, но это мне мало помогает.

http: / /forums.whatwg.org/viewtopic.php?t=185&highlight=tab+focus

(видимо, как новый пользователь, я могу опубликовать только одну ссылку, поэтому я ее пометил)

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

Ответы [ 4 ]

4 голосов
/ 20 августа 2009

В FireFox введите about: config и измените browser.tabs.loadDivertedInBackground на true. Это помогло мне с браузерными букмарклетами.

источник: http://lifehacker.com/263940/force-links-to-open-in-the-background

1 голос
/ 29 июня 2009

Нет, не программно через JavaScript. У вас нет контроля над настройками браузера пользователя, только они контролируют его.

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

1 голос
/ 29 июня 2009

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

Звонки в window.open с тем же имя окна как уже существующее окно, загружает URL в это окно и дает ссылку на окно назад. Окно не имеет фокуса, его свойство открывателя не изменилось, и третий аргумент для window.open игнорируются. Вы можете использовать метод фокусировки установить фокусировку окна вручную.

var oldWin = window.open("url.html","oldName"); 
oldWin.focus(); // give focus 
0 голосов
/ 04 апреля 2011

Столкнувшись с той же проблемой, я только заметил, что если вы alert () что-то сразу после открытия окна, Firefox не переключится на вновь открывающуюся вкладку.

...