JavaScript - niespodzianka w Chrome

JavaScript - niespodzianka w Chrome
Pangeon
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Łódź
  • Postów:163
0
Kopiuj

<body>
    <div id="menu">
        <label>Ustaw kolor tła</label><br />
        <input id="changeColor" type="text" />
        <label>Szerokość tła</label><br />
        <input id="changeWidth" type="text" />
        <label>Wysokość tła</label><br />
        <input id="changeHeight" type="text" />
        <label>Szerokość ramki</label><br />
        <input id="frameWidth" type="text" />
        <label>Kolor ramki</label><br />
        <input id="frameColor" type="text" />
        <label>Styl ramki</label><br />
        <input id="frameStyle" type="text" />
        <button id="enter">Zawierdź</button>
    </div>
    <section id="canvas"></section>

    <script>
        var color = changeColor.value;
        var width = changeWidth.value;
        var height = changeHeight.value;
        var Fwidth = frameWidth.value;
        var Fcolor = frameColor.value;
        var Fstyle = frameStyle.value;
        function start() {
            canvasColor();
            canvasSize();
            canvasFrame();
        }
        function canvasColor() {
            canvas.style.backgroundColor = color;
        }
        function canvasSize() {
            canvas.style.width = width;
            canvas.style.height = height;
        }
        function canvasFrame() {
            canvas.style.borderWidth = Fwidth;
            canvas.style.borderColor = Fcolor;
            canvas.style.borderStyle = Fstyle;
        }
        function refresh() {
            location.reload();
        }
        enter.addEventListener("click", start);
        canvas.addEventListener("click", refresh);
    </script>
</body>
</html>

Skróciłem na maksa ten toporny kod, uczę się JS więc proszę o wyrozumiałość :) To coś działa mi w FF zaś w Chrome nie. Po wywołaniu akcji z przycisku wartości z inputów są pobierane a element modyfikowany (w FF wartości wpisane w input nie znikają po odświeżeniu, w Chrome tak). W FF działa w Chrome nie. Pomijam "złożoność" aplikacji, po prostu zastanawia co ja właściwie zrobiłem? Nie mam pomysłu.


Sukces jest progresywną realizacją wartościowej idei w ramach cierpliwego wymiaru czasu.
edytowany 1x, ostatnio: Pangeon
O8
  • Rejestracja:około 9 lat
  • Ostatnio:ponad 7 lat
  • Postów:17
0

https://www.w3schools.com/jsref/met_loc_reload.asp
Sekcja: Definition and Usage

Pangeon
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Łódź
  • Postów:163
0

Z założenia JS nie powinien działać inaczej, więc z tego wynika że Chrome nie odczytuje value w ten sposób. Strona na W3shools ginie mi po odświeżeniu w Chrome, w FF zaś nie.

Cała strona jest wczytywana ponownie, a wartości nie są przechowywane w zmiennych. FF źle działa bo mimo tego strona jest wczytywana ponownie program działa, wartości siedzą w inputach po odświeżeniu, więc po kolejnym odświeżeniu są pobierane. Jak inaczej pobrać wartości z inputów?

Metoda reload () służy do ponownego załadowania bieżącego dokumentu.
Metoda reload () działa tak samo jak przycisk reload w przeglądarce.
Domyślnie metoda reload () ponownie ładuje stronę z pamięci podręcznej, ale można zmusić ją do ponownego załadowania strony z serwera, ustawiając parametr forceGet na true: location.reload (true).

nie pomogło.


Sukces jest progresywną realizacją wartościowej idei w ramach cierpliwego wymiaru czasu.
edytowany 2x, ostatnio: Pangeon
Pangeon
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Łódź
  • Postów:163
0
Kopiuj
function canvasColor() {
            canvas.style.backgroundColor = color.value;
            console.log("wywołanie canvasColor()");
}

tak działa


Sukces jest progresywną realizacją wartościowej idei w ramach cierpliwego wymiaru czasu.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.