2012-06-15 5 views
5

Próbuję debugować witrynę na iPadzie. Na pulpicie pojawia się element, na iPadzie go brakuje.Czy mogę używać konsoli/alertu/niektórych innych sposobów do odczytywania WSZYSTKICH właściwości CSS naraz?

Pytanie:
Czy istnieje sposób na wyjście wszystkie CSS w jednym sprawozdaniu podobny do

console.log($('element').attr('class')); 

czy jest to jedyny sposób na znalezienie uszkodzonego mienia przejść przez wszystkie CSS reguł jeden po drugim ?

console.log($('element').css('position')) 
console.log($('element').css('top')) 
console.log($('element').css('left')) 
console.log($('element').css('right')) 
console.log($('element').css('bottom')) 
console.log($('element').css('width')) 
console.log($('element').css('height')) 
console.log($('element').css('display')) 
... you get the point... 

Dzięki za wejście

+1

możliwy duplikat: http://stackoverflow.com/questions/2151558/how-to-get-all-the-calculated-styles-of -an-element-with-jquery –

+0

Sprawdź pierwszą odpowiedź tutaj: http://stackoverflow.com/questions/754607/can-jquery-get-all-css-styles-associated-with-an-element – Playmaker

+0

Zainstaluj FireBug Lite , dzięki czemu można go używać na iPadzie. –

Odpowiedz

3

Trzeba window.getComputedStyle:

getComputedStyle() daje końcowe używane wartości wszystkich CSS właściwości elementu.

Obsługiwana we wszystkich nowoczesnych przeglądarkach (w tym IE9).

Prosty przykład:

var style = window.getComputedStyle($('element').get(0), null); 

jsFiddle Demo

+0

niesamowite. Dzięki! – frequent

+0

I oczywiście, aby użyć selektora jQuery: 'document.defaultView.getComputedStyle ($ (" element ") [0], null)' – h2ooooooo

1

jquery .css() działa lepiej niż .getComputedStyle gdyż stanowi różnicę przeglądarki (i opiera się na samej getComputedStyle), patrz http://api.jquery.com/css/

zobacz how to get all the calculated styles of an element with jQuery? i podaj tam odpowiedź :)

+0

Nie rozumiem tego. Najpierw mówisz, że '.css()' jest lepsze, a następnie wskazuje na odpowiedź, która używa prostego 'getComputedStyle()'. Różnice między przeglądarkami nie mają tu znaczenia, on chce czegoś, co działa na iPadzie. Zgadzam się, ponieważ twoja odpowiedź mówi tylko link do innej odpowiedzi (która powinna być flagą/komentarzem). – kapa

+0

zaakceptowana odpowiedź na to pytanie nie oznacza użycia funkcji getComputedStyle(), ale .css(). W każdym razie jestem wdzięczny za sugestię pozostawienia komentarza zamiast odpowiedzi. – Luca

+0

Mój błąd. Spojrzałem na odpowiedź z najwyższymi wynikami. – kapa

1

Oto mała wtyczka, która dodaje $ .fn.computedCSS() można użyć, aby uzyskać to, co inni już zaproponował:

Kod:

(function($) { 
    $.fn.computedCSS = function() { 
     var elem = $(this)[0]; 
     var styles = window.getComputedStyle(elem); 
     var computed = {}; 
     for (key in styles) { 
      if (!key.match(/^\d+$/) && typeof styles[key] !== 'function') { 
       computed[key] = styles[key]; 
      } 
     } 
     return computed; 
    }; 
})(jQuery); 

Demo:

http://jsfiddle.net/Kd6xR/

2

To dużo łatwiejsze do korzystania z niektórych narzędzia do zdalnego sprawdzania strony na iPadzie. iOS 6 będzie to wbudowane, ale teraz to niewiele. Jeśli używasz komputera Mac, wypróbuj wersję iWebInspector wraz z zestawem SDK iOS. Jeśli nie, możesz sprawdzić WeInRe.

  1. Install iOS SDK (za darmo) i iWebInspector
  2. Otwarte iWebInspector
  3. kliknij "Otwórz iOS Simulator"
  4. Przełącz do iPada poprzez hardware Menu -> Akcesoria -> iPad
  5. Otwórz Safari i przejdź stronę, którą chcesz debugować
  6. Kliknij "Wczytaj z Safari" ponownie w iWebInspector i wybierz stronę
  7. Powinieneś teraz uzyskać WebKit debugger wewnątrz iWebInspector

enter image description here

WeInRe (Webkit Inspektor Remote) powinien działać na każdej platformie, bez konieczności iOS SDK. Nie działa tak dobrze, jak prawdziwe debuggery, ponieważ po prostu wstrzykuje skrypty i ma tylko dostęp do tego, co dostajesz przez javascript. Ale jest to znacznie łatwiejsze niż programowanie wszystkich programów css;) Czasami WeInRe nie przechwytuje zmian w DOM po obejrzeniu elementu. Poczekaj, aż DOM znajdzie się w stanie, w którym chcesz spojrzeć, zanim rozwiniesz element nadrzędny. WeInRe jest hostowany przez PhoneGap: debug.phonegap.com lub może być zainstalowany na komputerze http://phonegap.github.com/weinre/

+0

i mogę używać tego z HTML5/CSS/Javascript? Chłodny! – frequent

+0

@frequent Dokładnie;) Tak jak Firebug/Webkit Inspector. Ale zdalnie, więc możesz sprawdzić urządzenie na swoim komputerze. – gregers

+0

Bardzo ładne. Ustawienia już teraz! DZIĘKI JESZCZE RAZ! – frequent

Powiązane problemy