Подтвердить что ты не робот

Как активировать вкладку из Консоли Javascript ниже?

Я использую консоль Chrome javascript (если вы используете Chrome или Chromium, вы можете просто нажать Ctrl + Shift + J сейчас, чтобы открыть его) под текущей открытой вкладкой.

Есть ли что-то, что я могу войти в консоль, чтобы документ на вкладке выше получил фокус, а консоль потеряла фокус?

Я пробовал с помощью

chrome.tabs

но он дает только

undefined
4b9b3361

Ответ 2

Единственный способ получить фокус, не закрывая консоль, - вызвать alert();, confirm(); или prompt();.
Или, закрыв консоль (window.open("javascript:close()","_self");), основная вкладка может получить фокус.

Ответ 4

Я бы не назвал это элегантным решением никоим образом, но, как взломать, он выполнит эту работу.

Ваш вопрос: "Как сосредоточиться на основном документе с консоли Chrome"; с этим я бросаю в средний элемент - всплывающее окно. Идея состоит в том, что если вы можете создать всплывающее окно, которое автоматически закрывается (из Консоли), когда оно закрывается, фокус возвращается к родительскому окну. В этом случае это фактический документ, на котором вы были, а не Консоль в Chrome.

Здесь полный код:

var openScript = document.createElement('script');
openScript.innerHTML = 'openWindow = window.open(""); openWindow.document.write(\'<script>window.close();</script>\');';
document.body.appendChild(openScript);

Этот код может быть свернут в однострочный, который можно скопировать + вставить в консоль, и после того, как вы нажмете Enter, он будет всплывать, закрываться и возвращать фокус обратно в исходный документ. Независимо от того, какой элемент на странице имел фокус, прежде чем вы фокусировались на консоли, или какой-либо элемент, который вы изменили, фокусируется на консоли (через document.getElementById('something').focus() или аналогичный), будет фокусироваться на странице.

Предостережение к этому подходу заключается в том, что веб-сайт, на котором вы его используете, должен иметь всплывающие окна. В качестве альтернативы и не рекомендуется, вы можете просто включить все всплывающие окна в Chrome.

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

...
openScript.innerHTML = 'function refocus() { openWindow = window.open(""); openWindow.document.write(\'<script>window.close();</script>\'); }';
...

Затем просто вызовите refocus(); всякий раз, когда вы хотите вернуть фокус родителям. Конечно, если вы оставите текущую страницу по какой-либо причине, вам нужно будет снова запустить полный блок кода.

Для чего стоит, если вы видите, что используете это много, вы также можете добавить расширение Tampermonkey и сохранить этот блок код в функцию; то вам никогда не придется беспокоиться о том, чтобы запускать все это каждый раз - вы просто вызывали имя функции, которую вы сохранили.

Однострочный сверху (для легкой копии + вставка):

var openScript = document.createElement('script'); openScript.innerHTML = 'openWindow = window.open(""); openWindow.document.write(\'<script>window.close();</script>\');'; document.body.appendChild(openScript);

Ответ 5

Вместо вставки кода в консоли:

var a = function() {my code...}; a()

Вы можете вставить и запустить его из строки url:

javascript:var a = function() {alert('hi');}; a()

Вы даже можете добавить этот javascript: url в качестве закладки, так как количество фрагментов кода ( "букмарклеты" ) запущено.