Jakie jest źródło funkcji kwerendy selektora znaków podwójnego dolara w Chrome/Firefox?
Sprawdź Ten jsfiddle i spójrz na konsolę. $$
nie jest zdefiniowana. Teraz otwórz zupełnie nowe okno i wprowadź $$
do konsoli. Definiuje funkcję do uzyskania tablicy (podobnej do jQuery) wszystkich elementów dom, które pasują do selektora:
> $$
bound: function () {
return document.querySelectorAll.apply(document, arguments)
}
Czy jest to dodawane przez Dev tools? Jest również obecny podczas korzystania z Firebug w Firefoksie. Czy jest on używany wewnętrznie przez same narzędzia?
2 answers
Cóż, Firebug Lite definiuje to jako:
this.$$=function(selector,doc){if(doc||!FBL.Firebug.chrome){return FBL.Firebug.Selector(selector,doc)
(Zobacz źródło .)
Pełna wersja Firebug definiuje to jako
this.$$ = function(selector)
{
return FBL.getElementsBySelector(baseWindow.document, selector);
};
Jest to w rzeczywistości udokumentowane i tak, jest również używane wewnętrznie.
Więc zakładam, że Google Chrome robi coś podobnego.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-26 10:46:21
Po pierwsze, wszystko w odpowiedzi ziesemera jest poprawne.
To wszystko o historii JavaScript
Istnieje wiele funkcji, które są dostępne w różnych konsolach devtools przeglądarki. Wszystkie metody są znane jako API linii poleceń (off-line) (new link) i wszystkie pochodzą z Firebug. W dzisiejszych czasach mamy po prostu parytet między przeglądarkami, ponieważ Firebug robił rzeczy (głównie) dobrze.
Ale kiedy powstawał Firebug (2006), the JavaScript library that was all the rage was Prototype.js. $
został złapany przez prototyp dla jakiegoś getElementById()
syntaktycznego cukru, ponieważ był to z pewnością najszybszy sposób na chwytanie elementów i najczęstsza technika zdobywania elementów w tym czasie. To było takie oszczędzanie czasu, ludzie używali całej biblioteki tylko za $ sugar.
Na początku 2006 roku jQuery zadebiutowało i użyło $()
do wyboru dowolnego elementu opartego na selektorze css. Jak mój stary CSS Selector Engine Po raz pierwszy pojawiła się linia czasu, Prototype następnie cztery dni później z własną, ale ponieważ $
została już zabrana do ich biblioteki, po prostu udali się do $$()
, która jest teraz znana jako funkcja bling-bling.
Więc Firebug korzystał z API Prototype, ponieważ nadal rządził roostem w 2006 roku. Teraz, w czasach jQuery i post-jQuery aliasing jak window.$ = document.querySelectorAll.bind(document)
, widzimy to jako dość wstecz. Co ciekawe, kiedy Opera zrewolucjonizowała Dragonfly, ich browser dev narzędzia, wybrali $
jako swój querySelectorAll
alias, aby lepiej pasować do dzisiejszych praktyk, co IMO ma nieco więcej sensu.
Oh miałeś na myśli kod źródło..
Zapytałeś o "Źródło" $$
W DevTools i wyjaśniłem historię. UPS! Dlaczego jest on dostępny w konsoli... wszystkie metody Command Line API (off-line) (new link) są dostępne tylko w kontekście konsoli, podobnie jak metody wygody.
- Chrome DevTools / WebKit Inspector ' s cmd line API source
- Firebug ' s cmd line API source
źródło API cmd linii Opera Dragonfly
copy()
jest jednym z moich ulubionych; i cover it i innych w tym konsola JavaScript dla zaawansowanych użytkowników wideo.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-15 10:47:36