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

更新

看起来浏览器开始在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扩展

    替代文字

    替代文字


    我相信这些是预定义的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...
    
    链接地址: http://www.djcxy.com/p/61327.html

    上一篇: Secret copy to clipboard JavaScript function in Chrome and Firefox?

    下一篇: How to detect an application is installed from Google Chrome?