2015-04-15 11 views
8

SCENARIUSZ: Przejmuję zarządzanie witryną internetową, na której były programista niestety rozłożył wiele istotnych funkcji na wiele długich plików JS. Trudno mi znaleźć, skąd pochodzi wewnętrzny styl CSS w JS lub jaką funkcję stosuje ten styl bezpośrednio do elementu.Wyszukiwanie stylów wbudowanych w JavaScript w celu debugowania kodu JavaScript

PYTANIE: Czy istnieje metoda inżynierii odwrotnej stylów śródliniowych elementu, aby zobaczyć, skąd pochodzą?

+0

wiem, że to jest jak z prośbą, aby zobaczyć jaja z ciasta, które jest już upieczone. Ale mam nadzieję, że jest sposób. – JLF

+1

Użyj narzędzi do programowania przeglądarki – BadFeelingAboutThis

+0

Jeśli używasz chrome, Ctrl + Alt + i (w oknach), wybierz element, którego styl chcesz wyszukać, zobacz panel stylów dokładnie tam, skąd pochodzi – BadFeelingAboutThis

Odpowiedz

17

Możliwym sposobem jest dodanie punktu przerwania DOM w Chrome Dev Narzędzia

enter image description here

za to do pracy, trzeba dodać punkt przerwania przed styl dodaje. To może być trudne, ale można wymusić przerwania przed załadowaniem jakichkolwiek JavaScript poprzez dodanie następujących bezpośrednio po elemencie HTML w pytaniu

<script>debugger</script> 

Wypróbuj następującego kodu

  • kliknij na „Run przycisk fragment kodu”poniżej
  • Otwarte Dev Narzędzia
  • kliknij prawym przyciskiem akapit
  • Wybierz przerwę na ... -> Atrybut modyfikacje
  • Kliknij przycisk „Dodaj kolor obramowania”
  • Voila, Twój debugger zatrzymuje się na kodzie, który modyfikuje styl

window.onload = function() { 
 
    document.querySelector('button').addEventListener('click', function() { 
 
     document.querySelector('p').style.border = '2px solid red';  
 
    }); 
 
}
<p> Sample Paragraph </p> 
 
<button>Add border color</button>

+0

To świetnie, dzięki! – JLF

+0

Wskazówka: Ustaw pojedynczy punkt przerwania DOM DOMDYRDY PODDANYCH na węźle najwyższego poziomu, na przykład 'body', a punkt przerwania zostanie wywołany, gdy dowolne z jego elementów podrzędnych zostanie zmodyfikowane. –

+0

@KayceBasques Nie jesteś pewien, że to dobry pomysł, zostaniesz zalany punktami przerwania. Na to pytanie OP chce wiedzieć, kiedy konkretny element ma zostać zmodyfikowany. Twoja sugestia może być ważna w innych kontekstach, ale nie w odniesieniu do tego pytania. Z OP 'wbudowany styl CSS pochodzi z JS lub jaką funkcję stosuje ten styl bezpośrednio do elementu." –