Chrome和Firefox中的秘密复制到剪贴板JavaScriptfunction?

更新

看起来浏览器开始在JS中本地支持复制


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

copy("party in your clipboard!"); 

并将文本复制到我的剪贴板。 我已经search过,谷歌,似乎无法find任何东西。

  • 这些是针对每个浏览器的吗?
  • 我在哪里可以find关于这些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控制台中执行复制function的两个屏幕截图,其中禁用了所有的Chrome扩展

替代文字

替代文字

我相信这些是预定义的Firebug控制台function – 至less对于Firebug来说似乎是这样。 如果你尝试调用window.copy作为例子,你会得到一个关于函数没有定义的警告,所以它绝对不是浏览器函数,不能在普通的JavaScript文件中使用。 下面的函数似乎在JavaScript控制台中工作后,稍微玩了一下:

  • clear()
  • profile()

在Chrome控制台中运行这些function可以在Webkit控制台中看到这些function的来源:

 > 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); } 

虽然Firebug来源也定义了一系列function:

 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...