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

Ładowanie kodu JS na podstawie zdarzenia "resize"

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
221 wizyt
pytanie zadane 30 marca 2017 w JavaScript przez przemek-mtk- Początkujący (390 p.)

Witam,
Napotkałem mały problem z ładowaniem skryptów dla odpowiednich szerokości ekranów.
 

function addScriptToPage (uri) {
            var script = document.createElement("SCRIPT");
            script.type = "text/javascript";
            script.async = true;
            script.src = uri;

            document.getElementsByTagName("head")[0].appendChild(script);
        }
        
        
        function checkWidthScreen () {
            var widthScreen = document.documentElement.offsetWidth,
                elementsArr = document.querySelectorAll("head script");
           
            if (widthScreen >= 650) {
                 elementsArr[1].setAttribute("src", "script_for_computer.js");
                 elementsArr[2].setAttribute("src", "")
            }
            else {
                 elementsArr[1].setAttribute("src", "script_for_screen.js");
                 elementsArr[2].setAttribute("src", "");
                
                 if(widthScreen < 479){
                     elementsArr[2].setAttribute("src", "script_for_min_screen.js");
                }
            }
        }
        
     
        
        document.addEventListener("DOMContentLoaded", function() {
    
            addScriptToPage("all_script.js");
            addScriptToPage("");
            addScriptToPage("");
            
            window.addEventListener("resize", checkWidthScreen, false);

            
        })

Kod w sumie działa, bo podczas zmiany szerokości funkcja setAttribute działa jak powinna, ale mimo to przeglądarka nie wczytuje tych skryptów i nie działają z nich odpowiednie funkcje. Popełniłem gdzieś mały błąd, czy raczej cały kod jest w tym przypadku błędny, a takie dodawanie skryptów robi się inaczej?

1 odpowiedź

0 głosów
odpowiedź 31 marca 2017 przez przemek-mtk- Początkujący (390 p.)

Dobra, rozwiązałem problem. W tym przypadku setAttribute to zły pomysł.
Jakby kogoś interesowało to kod wygląda teraz tak:

function addScriptToPage (uri) {
            var script = document.createElement("SCRIPT");
            script.type = "text/javascript";
            script.async = true;
            script.src = uri;

            document.getElementsByTagName("head")[0].appendChild(script);
        }
        
        
        function checkWidthScreen () {
            var widthScreen = document.documentElement.offsetWidth,
                elementsArr = document.querySelectorAll("head script"),
                headElement = document.getElementsByTagName("head")[0];
           
            if (widthScreen >= 650) {
                headElement.removeChild(elementsArr[1]);
                addScriptToPage("script_for_computer.js");
            }
            else {
                headElement.removeChild(elementsArr[1]);
                addScriptToPage("script_for_screen.js");
            }
        }
        
     
        
        document.addEventListener("DOMContentLoaded", function() {
    
            addScriptToPage("all_script.js");
            addScriptToPage("");
            
            
            window.addEventListener("resize", checkWidthScreen, false);

            
        })

Podobne pytania

0 głosów
1 odpowiedź 166 wizyt
pytanie zadane 16 maja 2020 w JavaScript przez Allen Obywatel (1,010 p.)
0 głosów
1 odpowiedź 227 wizyt
pytanie zadane 6 października 2019 w JavaScript przez Młody programista Obywatel (1,200 p.)
0 głosów
2 odpowiedzi 267 wizyt
pytanie zadane 9 lipca 2018 w JavaScript przez Mebya Użytkownik (700 p.)

93,190 zapytań

142,205 odpowiedzi

322,040 komentarzy

62,518 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2817p. - dia-Chann
  2. 2769p. - Łukasz Piwowar
  3. 2759p. - Łukasz Eckert
  4. 2738p. - CC PL
  5. 2704p. - Tomasz Bielak
  6. 2678p. - Łukasz Siedlecki
  7. 2666p. - rucin93
  8. 2485p. - Marcin Putra
  9. 2426p. - Mikbac
  10. 2418p. - Michal Drewniak
  11. 2367p. - Adrian Wieprzkowicz
  12. 2239p. - Michał Telesz
  13. 2156p. - Anonim 3619784
  14. 1733p. - rafalszastok
  15. 1628p. - Dominik Łempicki (kapitan)
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...