在Chrome和Firefox中秘密复制到剪贴板的JavaScript功能?


150

更新资料

好像 浏览器已经开始在JS中原生支持复制


在Mac上的Chrome和Firefox的控制台窗口中,我可以执行

copy("party in your clipboard!");

然后文本被复制到我的剪贴板中。我已经搜索过SO和Google,但似乎找不到任何东西。

  • 这些特定于每个浏览器吗?
  • 在哪里可以找到有关这些JavaScript函数的更多信息?

浏览器版本:

替代文字 替代文字

执行“复制”时从Chrome控制台返回的JavaScript

function (object)
    {
        if (injectedScript._type(object) === "node") {
            var nodeId = InjectedScriptHost.pushNodePathToFrontend(object, false, false);
            InjectedScriptHost.copyNode(nodeId);
        } else
            InjectedScriptHost.copyText(object);
    }
  • 此代码是什么意思?

这是在Chrome控制台中执行复制功能并禁用了所有Chrome扩展程序的2张屏幕截图

替代文字

替代文字


您正在使用哪个Firefox控制台,错误控制台?
马修·弗拉申

2
我没有C ++程序员,但是我发现void InjectedScriptHost::copyText(const String& text)opensource.apple.com/source/WebCore/WebCore-7533.18.1/inspector/...

@ Kai,Hmmmmmm ...看起来好像它内置于Apple的开源Webkit中吗?
Mike Grace

不幸的是,该命令不适用于Chrome扩展程序,因此它必须特定于WebKit中的开发人员工具控制台。
原子

确认这也适用于Safari。好发现!
bizi

Answers:


62

我相信这些是预定义的Firebug控制台功能-至少对于Firebug似乎是如此。window.copy例如,如果尝试调用,则会收到有关未定义函数的警告,因此它绝对不是浏览器函数,并且不能在常规JavaScript文件中使用。经过一些操作之后,以下功能似乎也可以在JavaScript控制台中使用:

  • clear()
  • profile()

在Chrome控制台中运行这些功能可以揭示Webkit控制台中这些功能的来源:

> profile
function ()
{
return console.profile.apply(console, arguments)
}

> clear
function ()
{
InjectedScriptHost.clearConsoleMessages();
}

> copy
function (object)
{
if (injectedScript._type(object) === "node")
object = object.outerHTML;
InjectedScriptHost.copyText(object);
}

虽然萤火虫源还定义的函数的列表:

this.clear = function()  // no web page interaction
{
    Firebug.Console.clear(context);
};

this.inspect = function(obj, panelName)  // no web page interaction
{
    Firebug.chrome.select(obj, panelName);
};

this.keys = function(o)
{
    return FBL.keys(o);  // the object is from the page, unwrapped
};

this.values = function(o)
{
    return FBL.values(o); // the object is from the page, unwrapped
};

// etc...

2
使用节点检查器调试控制台时,这似乎在Chrome 44中不起作用。Clipboard is not enabled in hosted mode. Please inspect using chrome://inspect
jcollum

1
真好 在Chrome 61.0.3163.100版(正式版)(64位)中可以使用!
Shanimal

1
在我的Chrome开发人员工具上看起来可以正常工作,并且也可以正常工作window.copy('content')(仅在Firefox上可以copy('content')正常工作)
morhook

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.