12

我在当前打开的标签下方使用 Chrome 的 javascript 控制台(如果您使用的是 Chrome 或 Chromium,您可以现在按Ctrl+ Shift+键打开它)。J

是否可以在控制台中输入一些内容,以便上面选项卡中的文档获得焦点而控制台失去焦点?

我试过了

chrome.tabs

但它只给

undefined
4

5 回答 5

8

https://support.google.com/chrome/bin/answer.py?hl=en&answer=157179

( F6) 或 ( Shift+ F6)

但是在到达主要的网络内容之前,您必须切换很多东西。

于 2012-12-20T16:06:46.493 回答
6

在不关闭控制台的情况下获得焦点的唯一方法是调用alert();或。 或者,通过关闭控制台 ( ) ,主选项卡可以获得焦点。confirm();prompt();
window.open("javascript:close()","_self");

于 2012-12-29T20:31:39.170 回答
2

根据Firebug 的 Command Line API* wikipage,没有办法;它只会输出有关输入的数据。

*这是 Javascript 控制台使用的

于 2012-12-29T12:57:19.893 回答
1

我无论如何都不会称这是一个优雅的解决方案,但作为一个黑客,它会完成这项工作。

您的问题是“如何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);
于 2012-12-31T18:41:53.660 回答
-1

而不是在控制台中粘贴代码:

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

您可以从 url 栏中粘贴并运行它:

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

您甚至可以将此 javascript: url 添加为书签,这是运行的代码片段 ('bookmarklets') 的数量。

于 2013-01-05T21:07:25.737 回答