簡體   English   中英

在 Chrome 和 Firefox 中秘密復制到剪貼板 JavaScript 功能?

[英]Secret copy to clipboard JavaScript function in Chrome and Firefox?

更新

看起來瀏覽器開始支持在 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 個屏幕截圖

替代文字

替代文字

我相信這些是預定義的 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...

這里可以看到Chrome開發工具的參考復制命令: https : //developers.google.com/web/tools/chrome-devtools/console/utilities#copy

你不應該在真正的 JS 跨瀏覽器上使用這個命令(只是為了在控制台上調試)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM