クリップボードへの秘密のコピーJavaScriptとFirefoxのJavaScript関数?


150

更新

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


ChromeとMacの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つのスクリーンショット

代替テキスト

代替テキスト


使用しているFirefoxコンソールはエラーコンソールですか?
マシューFlaschen

2
私はC ++プログラマではありませんがvoid InjectedScriptHost::copyText(const String& text)opensource.apple.com / source / WebCore / WebCore
Kai

@カイ、うーん...それは多分それはおそらくアップルのオープンソースのウェブキットに組み込まれているように見えますか?
Mike Grace

残念ながら、このコマンドはChrome拡張機能では機能しないため、WebKitのデベロッパーツールコンソールに固有である必要があります。
原子数

これがSafariでも機能することを確認してください。素敵な発見!
bizi

回答:


62

これらは事前定義された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...

2
ノードインスペクタデバッグコンソールを使用している場合、これはChrome 44では機能しないようです。Clipboard is not enabled in hosted mode. Please inspect using chrome://inspect
jcollum

1
いいね。これはChromeバージョン61.0.3163.100(公式ビルド)(64ビット)で動作します!
Shanimal

1
私のChrome開発者ツールは機能しているように見え、機能していますwindow.copy('content')(Firefoxでのみ機能しcopy('content')ます)
morhook

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.