更新
在 Mac 上的 Chrome 和 Firefox 的控制台窗口中我都可以执行
copy("party in your clipboard!");
文本被复制到我的剪贴板。我搜索过 SO 和 Google,似乎找不到任何相关信息。
浏览器版本:
执行“复制”时从 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 个屏幕截图
我相信这些是预定义的 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);
}
虽然 Firebug 源 还定义了一个函数列表:
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...
现在您可以使用跨浏览器工作的新 API,您可以添加隐藏在 DOM 上的输入文本,选择它然后运行
document.execCommand('copy');
参考: https://developer.chrome.com/blog/cut-and-copy-commands/
这里可以看到Chrome Dev工具的参考复制命令: https://developers.google.com/web/tools/chrome-devtools/console/utilities#copy
你不应该在真正的 JS 跨浏览器上使用此命令(只是为了在控制台上调试)。