2010-12-30 12 views
116

AggiornamentoCopia segreta nella funzione JavaScript degli appunti in Chrome e Firefox?

Sembra browsers are starting to support copy natively in JS


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

copy("party in your clipboard!"); 

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

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

versioni del browser:

alt text alt text

JavaScript tornati dalla console 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); 
    } 
  • Che cosa significa questo codice?

Qui ci sono 2 le immagini dell'esecuzione funzione di copia in consolle Chrome con tutte le estensioni di Chrome disabili

alt text

alt text

+0

quale console Firefox stai usando, Error Console? –

+0

@Matthew Flaschen, Firebug. –

+2

Non sono un programmatore C++, ma ho trovato "void InjectedScriptHost :: copyText (const String & text)" in http://opensource.apple.com/source/WebCore/WebCore-7533.18.1/inspector/InjectedScriptHost.cpp – Kai

risposta

50

Credo che queste siano le funzioni della console Firebug predefinite - almeno che sembra sii il caso di Firebug. Se provi a chiamare lo window.copy, ad esempio, 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 sembra anche a lavorare nella console JavaScript, dopo aver giocato intorno con esso un po ':

  • clear()
  • profile()

l'esecuzione di questi nella console Chrome rivela la fonte dietro queste funzioni nella console 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 il Firebug source 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... 
+13

+1 bel lavoro investigativo – SeanDowney

+1

Sembra che questo non funzioni in Chrome 44 quando si utilizza la console di debug di node-inspector. 'Gli appunti non sono abilitati in modalità hosted. Si prega di ispezionare utilizzando chrome: // inspect' – jcollum

+0

Nice. Funziona in Chrome versione 61.0.3163.100 (build ufficiale) (64-bit)! – Shanimal

Problemi correlati