Copia segreta negli Appunti funzione JavaScript in Chrome e Firefox?


150

Aggiornare

Looks come i browser stanno iniziando a copiare il supporto nativo in JS


Nelle finestre della console di Chrome e Firefox su Mac posso eseguire

copy("party in your clipboard!");

e il testo viene copiato negli appunti. Ho cercato SO e Google e non riesco a trovare nulla al riguardo.

  • Sono specifici per ciascun browser?
  • Dove posso trovare maggiori informazioni su queste funzioni JavaScript?

Versioni del browser:

testo alternativo testo alternativo

JavaScript restituito dalla console di Chrome durante l'esecuzione di "copia"

function (object)
    {
        if (injectedScript._type(object) === "node") {
            var nodeId = InjectedScriptHost.pushNodePathToFrontend(object, false, false);
            InjectedScriptHost.copyNode(nodeId);
        } else
            InjectedScriptHost.copyText(object);
    }
  • Cosa significa questo codice?

Ecco 2 schermate dell'esecuzione della funzione di copia nella console di Chrome con tutte le estensioni di Chrome disabilitate

testo alternativo

testo alternativo


Quale console Firefox stai utilizzando, console errori?
— Matthew Flaschen,

2
Non sono un programmatore C ++, ma l'ho trovato void InjectedScriptHost::copyText(const String& text)in opensource.apple.com/source/WebCore/WebCore-7533.18.1/inspector/…
— Kai il

@Kai, Hmmmmmm ... sembra che forse sia integrato nel webkit open source di Apple allora?
— Mike Grace,

Sfortunatamente questo comando non funziona da un'estensione di Chrome, quindi deve essere specifico per la console degli strumenti di sviluppo in WebKit.
— atomici

conferma che funziona anche con Safari. Bella scoperta!
— bizi,

Risposte:


62

Credo che queste siano funzioni predefinite della console di Firebug - almeno questo sembra essere il caso di Firebug. Se provi window.copyad esempio a chiamare , riceverai un avviso sulla funzione non definita, quindi non è sicuramente una funzione del browser e non può essere utilizzata nei normali file JavaScript. Le seguenti funzioni sembrano funzionare anche nella console JavaScript, dopo averci giocato un po ':

  • clear()
  • profile()

L'esecuzione di questi nella console di Chrome rivela l'origine dietro queste funzioni nella console di 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);
}

Mentre la fonte Firebug definisce anche un elenco di funzioni:

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
Sembra che ciò non funzioni in Chrome 44 quando si utilizza la console di debug di inspector nodo. Clipboard is not enabled in hosted mode. Please inspect using chrome://inspect
— jcollum,

1
Bello. Funziona con la versione 61.0.3163.100 di Chrome (build ufficiale) (64 bit)!
— Shanimal,

1
Sul mio strumento di sviluppo di Chrome sembra che funzioni e funzioni window.copy('content')(su Firefox solo con copy('content')opere)
— morhook,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.