2010-12-30 13 views
116

AktualizacjaTajna kopia do schowka Funkcja JavaScript w przeglądarce Chrome i Firefox?

Wygląda browsers are starting to support copy natively in JS


W oknach konsoli zarówno Chrome i Firefox na Mac mogę wykonać

copy("party in your clipboard!"); 

a tekst zostanie skopiowany do mojego schowka. Szukałem SO i Google i nie mogę znaleźć niczego na ten temat.

  • Czy są one specyficzne dla każdej przeglądarki?
  • Gdzie mogę znaleźć więcej informacji o tych funkcjach JavaScript?

wersje przeglądarek:

alt text alt text

wrócił z konsoli JavaScript Chrome podczas wykonywania 'kopia'

function (object) 
    { 
     if (injectedScript._type(object) === "node") { 
      var nodeId = InjectedScriptHost.pushNodePathToFrontend(object, false, false); 
      InjectedScriptHost.copyNode(nodeId); 
     } else 
      InjectedScriptHost.copyText(object); 
    } 
  • Co oznacza ten kod oznacza?

Oto 2 screeny wykonujące funkcję kopiowania w konsoli Chrome ze wszystkimi Rozszerzenia Chrome niepełnosprawnych

alt text

alt text

+0

Która konsola Firefox używasz, Error Console? –

+0

@Matthew Flaschen, Firebug. –

+2

Nie jestem programistą C++, ale znalazłem 'void InjectedScriptHost :: copyText (const String & text)' w http://opensource.apple.com/source/WebCore/WebCore-7533.18.1/inspector/InjectedScriptHost.cpp – Kai

Odpowiedz

50

wierzę są predefiniowane funkcje konsoli Firebug - przynajmniej tak wydaje w przypadku Firebug. Jeśli spróbujesz wywołać na przykład window.copy, otrzymasz ostrzeżenie o niezdefiniowanej funkcji, więc zdecydowanie nie jest to funkcja przeglądarki i nie może być używana w zwykłych plikach JavaScript. Następujące funkcje również wydaje się działać w konsoli JavaScript, po zabawy z nim trochę:

  • clear()
  • profile()

uruchomieniu tych w konsoli Chrome ujawnia źródło tyłu te funkcje w konsoli 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); 
} 

Choć Firebug source definiuje również listę funkcji:

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 miła robota detektywistyczna – SeanDowney

+1

Wygląda na to, że to nie działa w przeglądarce Chrome 44, gdy używana jest konsola do debugowania węzła. 'Schowek nie jest włączony w trybie hostowanym. Sprawdź za pomocą chrome: // inspect' – jcollum

+0

Nice. To działa w wersji Chrome 61.0.3163.100 (wersja oficjalna) (wersja 64-bitowa)! – Shanimal

Powiązane problemy