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.