• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

IE - prawdziwe piekło, czyli js u bram hadesu

0 głosów
88 wizyt
pytanie zadane 10 lutego w JavaScript, jQuery, AJAX przez program naczelny Gaduła (3,000 p.)
edycja 10 lutego przez program naczelny

Witam serdecznie!

Wychodzę naprzeciw z problemem skompilowania strony pod względem każdej przeglądarki, chrome, firefox działa, napotykam IE i strona niestety nawala! Znalazłem problem - skrypt który po kliknięciu na ikonę menu ma otworzyć opcje (pobiera klasę i display: block / display: none) nie działa w IE 11 zdaje się. Podam 2 funkcje (jedna z jquery) których próbowałem użyć - nic z tego, może ktoś kiedyś napotkał ten problem i będzie wstanie "poprawić" kod pod Internet Explorer ;) 

Wytypowałem że może nie działać funkcja forEach,  [...   ], document.querySelectorAll(".link");

function Functionty() {                                                     /*first function*/
var elements = document.querySelectorAll(".link");
  
   elements.forEach(function(element) {
    if (element.style.display === "block") {
      element.style.display = "none";
	
	  } 
	else {
      element.style.display = "block";

    }
  });
  
}

      
function Functionty() {                                                  /*second function*/
  var x = [ ...document.getElementsByClassName('link') ];
   
  x.forEach(function(element) {
    if (element.style.display === "block") {
      element.style.display = "none";
	  element.style.marginTop = "0px";
	  element.style.marginBottom = "0px";
	  
    } else {
      element.style.display = "block";
	  element.style.marginTop = "0px";
	  element.style.marginBottom = "0px";
    }
  })
  
};

 

komentarz 10 lutego przez Tomek Sochacki Mędrzec (186,690 p.)
serio schodzisz aż do IE9? wersja 11 to rozumiem bo korzysta z niej ~2% userow ale niższe to chyba można sobie darować? Rozumiem, że to pewnie decyzja biznesu o wsparciu tych środowisk ale może warto to przedyskutować i przeanalizować statystyki czy naprawdę koszt takiego developmentu jest tego warty?
komentarz 10 lutego przez program naczelny Gaduła (3,000 p.)
Pomyliłem się mam 11, więc przydało by się to ogarnąć
komentarz 10 lutego przez pablop76 Szeryf (96,690 p.)

@program naczelny,

rest

komentarz 10 lutego przez program naczelny Gaduła (3,000 p.)

@program naczelny,  problem rozwiązałem w inny sposób używając !important, ale jeszcze nie zamykam ponieważ mimo wszystko chciałbym wiedzieć co w tym przypadku można zrobić

komentarz 10 lutego przez JSHolic Szeryf (79,520 p.)
edycja 10 lutego przez JSHolic

Wytypowałem że może nie działać

Yyy, przecież jeśli coś nie działa od strony JSa, to w konsoli powinien być odpowiedni błąd, który powinieneś przeanalizować i dopiero wtedy naprawić przyczynę. "Typowanie" może pomóc, ale nie powinno się naprawiać problemów w kodzie na wyczucie, bo nie ma się pewności, że były one źródłem błędów. :)

Co do funkcji, które wytypowałeś jako problematyczne dla IE - możesz je polyfillować.

problem rozwiązałem w inny sposób używając !important

Użycie !important w CSS to ostateczność. 

komentarz 10 lutego przez program naczelny Gaduła (3,000 p.)
W tym problem że żadnego błędu ani nawet ostrzeżenia nie było :)

Taki to jest ten IE
komentarz 10 lutego przez JSHolic Szeryf (79,520 p.)
Debugowałeś kod? Jeśli cały kod JavaScriptu wykonuje się prawidłowo, to problem może tkwić w CSS. Upewnij się, że po stronie skryptu wszystko jest ok.
komentarz 10 lutego przez program naczelny Gaduła (3,000 p.)

jednak zaczęło wyświetlać błąd, było to jak przypuszczałem forEach. Polyfillowanie jak @JSHolic napisał to słuszne rozwiązanie, ale załóżmy że strona jest w wersi beta ( !important i inne półśrodki ), później się załatwi.

komentarz 10 lutego przez Tomek Sochacki Mędrzec (186,690 p.)
jeśli masz wspierać takie starsze środowiska to w sumie nie tylko IE może być problemem, ale też np. safari. Ja bym pomyślał nad transpilacją kodu do ES5, ewentualnie jakiś test sprawdzający np. czy są moduły i arrow function, jeśli tak to serwuj ES6, jeśli nie to ES5.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 60 wizyt
pytanie zadane 2 sierpnia 2018 w JavaScript, jQuery, AJAX przez MrxCI Dyskutant (8,290 p.)
0 głosów
2 odpowiedzi 126 wizyt
0 głosów
3 odpowiedzi 221 wizyt
pytanie zadane 6 lutego 2018 w JavaScript, jQuery, AJAX przez shy_fox Gaduła (4,310 p.)
Porady nie od parady
Zadając pytanie postaraj się o odpowiedni tytuł, kategorię oraz tagi.Tagi

65,633 zapytań

112,251 odpowiedzi

236,828 komentarzy

46,636 pasjonatów

Przeglądających: 207
Pasjonatów: 10 Gości: 197

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...