web-dev-qa-db-ja.com

ChromeおよびFirefoxのクリップボードJavaScript関数への秘密コピー?

更新

ブラウザはJSでネイティブにコピーをサポートし始めています


Mac上のChromeとFirefoxの両方のコンソールウィンドウで実行できます

copy("party in your clipboard!");

テキストがクリップボードにコピーされます。 SOとGoogleを検索しましたが、これについては何も見つからないようです。

  • これらは各ブラウザに固有ですか?
  • これらのJavaScript関数に関する詳細情報はどこで入手できますか?

ブラウザのバージョン:

alt textalt text

「コピー」の実行時に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つのスクリーンショットを次に示します。

alt text

alt text

140
Mike Grace

これらは事前定義されたFirebugコンソール関数であると信じています-少なくともFirebugの場合はそうであるようです。たとえばwindow.copyを呼び出そうとすると、定義されていない関数に関する警告が表示されるため、これは間違いなくブラウザー関数ではなく、通常のJavaScriptファイルでは使用できません。次の関数も、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 source は関数のリストも定義しています:

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...
58
Yi Jiang

ここで、Chrome Devツールの参照コピーコマンドを確認できます。 https://developers.google.com/web/tools/chrome-devtools/console/command-line-reference#copyobject

実際のJSクロスブラウザでこのコマンドを使用しないでください(コンソールでのデバッグのためだけに)。

0
morhook