如何从下面的Javascript控制台激活Tab?

时间:2012-12-20 15:57:16

标签: javascript debugging google-chrome console chromium

我正在使用Chrome的javascript控制台(如果您使用的是Chrome或Chromium,则只需按 Ctrl + Shift + J 现在打开它)在当前打开的标签下面。

我是否可以将输入控制台,以便上面选项卡中的文档获得焦点并且控制台失去焦点?

我试过

chrome.tabs

但它只给出了

undefined

5 个答案:

答案 0 :(得分:8)

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

F6 )或( Shift + F6

但是在到达主要网页内容之前,你必须切换一堆东西。

答案 1 :(得分:6)

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

答案 2 :(得分:2)

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

*这是Javascript控制台使用的

答案 3 :(得分: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);

答案 4 :(得分:-1)

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

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

您可以从网址栏粘贴并运行它:

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

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