Chrome ve Firefox'ta panoya JavaScript işlevinin gizli kopyası mı?


150

Güncelleme

Görünüşe göre tarayıcılar JS'de yerel olarak kopyalamayı desteklemeye başlıyor


Mac'te hem Chrome hem de Firefox'un konsol pencerelerinde çalıştırabilirim

copy("party in your clipboard!");

ve metin panoya kopyalanır. SO ve Google'da arama yaptım ve bu konuda hiçbir şey bulamıyorum.

  • Bunlar her tarayıcıya özgü mü?
  • Bu JavaScript işlevleri hakkında daha fazla bilgiyi nerede bulabilirim?

Tarayıcı sürümleri:

alternatif metin alternatif metin

'Kopyala' yürütülürken Chrome konsolundan döndürülen JavaScript

function (object)
    {
        if (injectedScript._type(object) === "node") {
            var nodeId = InjectedScriptHost.pushNodePathToFrontend(object, false, false);
            InjectedScriptHost.copyNode(nodeId);
        } else
            InjectedScriptHost.copyText(object);
    }
  • Bu kod ne anlama geliyor?

Chrome konsolunda tüm krom uzantıları devre dışı bırakılmış olarak kopyalama işlevini yürütmenin 2 ekran görüntüsü

alternatif metin

alternatif metin


Hangi Firefox konsolunu kullanıyorsunuz, Hata Konsolu?
Matthew Flaschen

2
Hiçbir C ++ programcısı değilim, ama buldum void InjectedScriptHost::copyText(const String& text)içinde opensource.apple.com/source/WebCore/WebCore-7533.18.1/inspector/...
Kai

@Kai, Hmmmmmm ... belki de Apple'ın açık kaynaklı web setinde yerleşik gibi görünüyor?
Mike Grace

Ne yazık ki bu komut bir Chrome uzantısından çalışmıyor, bu nedenle WebKit'teki geliştirici araçları konsoluna özgü olması gerekir.
Mart'ta atomlar

bunun Safari ile de çalıştığını onaylayın. Güzel bulmak!
bizi

Yanıtlar:


62

Bunların önceden tanımlanmış Firebug konsolu işlevleri olduğuna inanıyorum - en azından Firebug için durum böyle görünüyor. window.copyÖrneğin aramayı denerseniz , tanımlı olmayan işlev hakkında bir uyarı alırsınız, bu yüzden kesinlikle bir tarayıcı işlevi değildir ve normal JavaScript dosyalarında kullanılamaz. Aşağıdaki işlevler, biraz oynadıktan sonra JavaScript konsolunda da çalışıyor gibi görünüyor:

  • clear()
  • profile()

Bunları Chrome konsolunda çalıştırmak, Webkit konsolunda aşağıdaki işlevlerin arkasındaki kaynağı gösterir:

> 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);
}

İken Kundakçı kaynağı da işlevlerinin bir listesi tanımlar:

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
Düğüm denetçisi hata ayıklama konsolu kullanılırken bunun Chrome 44'te çalışmadığı anlaşılıyor. Clipboard is not enabled in hosted mode. Please inspect using chrome://inspect
jcollum

1
Güzel. Bu, Chrome Sürüm 61.0.3163.100 (Resmi Derleme) (64 bit) ile çalışır!
Shanimal

1
Chrome geliştirici window.copy('content')copy('content')
aracımda

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.