Wątek przeniesiony 2023-04-02 12:36 z JavaScript przez Riddle.

Jedna linijka sprawia, że strona nie przestaje się ładować.

0

Witam.

Strona pod dodaniu kodu

tmp=document.createElement("DIV");
tmp.setAttribute("id","chckbox");


tmp.setAttribute("style","display:fixed;position:relative;width:2.5%;height:92.5%;top:0%;
border-radius:8px 8px;background-color:transparent;color:white;cursor:pointer;z-index:9722;");

----------------------------------  miejsce problemowe 

tmp.innerHTML="<input  style='display:fixed;position:relative;cursor:pointer;width:90%;height:90%;left:1%;top:0%;
background-color:RGB(80,0,0);cursor:pointer;z-index:9723;' type='checkbox' onClick='sprawdz();'></input>";

-------------------------------------------------------

operacyjny_div.appendChild(tmp);

nie przestaje się ładować.

Po użyciu samego kodu

<input  style='display:fixed;position:relative;cursor:pointer;width:90%;height:90%;left:1%;top:0%;
background-color:RGB(80,0,0);cursor:pointer;z-index:9723;' type='checkbox' onClick='sprawdz();'></input>

w HTML efekt jest identyczny.

Strona z tym kodem ---- http://infinityhost.ct8.pl/kompilator_zly.html

i bez niego ---- http://infinityhost.ct8.pl/kompilator_dobry.html

2

U mnie na Chromium wyświetla się poprawnie, na Firefoksie nie przestaje się ładować.
Natomiast z tego co wiem nie ma takiej wartości jak “fixed” dla właściwości “display”.

0

Faktycznie pomyliło mi się ale działa(wystarczy samo display - gdzieniegdzie zapewne).
Zmieniłem na "relative" dalej nie przestaje ładować, usunąłem cały styl też to samo.
Ale dobrze, że patrzysz na całość, to się ceni.
Na Edge też ładuje długo(a raczej nie przestaje).

0

Poczekamy na Riddle

"Następnie spojrzeliśmy z większej perspektywy - wyjaśniłeś, że Tobie po prostu chodzi o zrobienie pola pojedynczego wyboru (czyli że jak zaznaczysz inne pole, to aktualne się odkliknie). I rozwiązanie na taką funkcjonalność istnieje od HTML 1.0, i nazywa się to "radio button", dodawane kodem <input type="radio" />" - by Riddle.

To input i to input, a on jest specjalistą od czasów HTML 1.0.

Zobaczymy jakie będzie jego wyjaśnienie.
A potem dam jego koledze przykład tego jak przeglądarka normalizuje kod, bo też zahaczyliśmy o ten temat.

"Przeglądarka normalizuje dwie spacje za <input do jednej (co zresztą widać w tym alecie, który dorzuciłeś) i dlatego porównanie nie działa." - Patryk27

Tak, albo nie działa albo nie przestaje działać. I tak od HTML 1.0 , mogliście powiedzieć, że ta miłość będzie boleć xD

0

Możesz wpisać w oknie HTML coś takiego

<button  onClick="alert();">Przykład 1</button><button>Przykład 2</button><button>Przykład 3</button>

- 2 spacje przed "onClick" i

<button onClick="alert();">Przykład 1</button><button>Przykład 2</button><button>Przykład 3</button>

jedna spacja - coś co przeglądarka powinna znormalizować automatycznie.

2
  • Nie ma czegoś takiego jak </input>. Jest <input value="" /> albo <input value="">, nie ma <input value=""></input>

Nie wiem czy to jest przyczyna, ale jeden z wielu problemów w tym kodzie. Jest nawet szansa, że nie to co dodajesz do tego bajzlu jest problemem, tylko coś wcześniej w połączeniu z tym nowym.

Dodaj doctype z html5 - będziesz mieć jednolite naprawianie wielu problemów z Twoim HTML przez przeglądarki, albowiem ten doctype ma jasno opisane jak zachować się w przypadku błędnego HTML, którego u Ciebie nie brakuje, a jakieś magiczne tryby automatyczne robią co chcą (o ile co się nie zmieniło w ostatnich latach). Wtedy będzie dalszy sens rozpatrywać te różnice między przeglądarkami.

0

@dzek69: Jakie jeszcze widzisz problemy w tym kodzie (poza wyłączaniem przycisków w trybie podglądu)?

Co takiego na tej stronie nie działa?

Wczoraj siedziałem na niej 3 godziny wieczorem, dzisiaj już 2, no i błędami jakoś nie sypie.
I nie grzebię w jej kodzie tylko jej używam, więc co jest nie tak?

0

Jest różnica między "nie działa", a "jest źle".

Auto z wszystkimi świecącymi kontrolkami na desce rozdzielczej też może jeździć.

Zacznij od tego co napisałem

0

Ja tej Twojej strony nawet nie rozumiem, nie znam jej założeń, więc po niej nie klikam. Widzę natomiast błędy w kodzie tak oczywiste, że nie muszę znać ich intencji, żeby wiedzieć, że jest źle.

0

Usunąłem wpisz"</input>" i jest to samo.
"Jest źle bo jest".
To są Twoje argumenty?
W internecie połowa stron ma błędy gdzie użytkownik to widzi, u mnie się długo ładuje (co moge zatrzymać ręcznie ale nie chcę jechać z migającą kontrolką).
Więc?

Rozumiem, że masz problem bo do mojego czytelnego, przejrzystego kodu nie dodałem wpisów "google.fonts.adds" itp?
albo

<link rel="preload" href="/lib/fonts/fontawesome.woff2?14663396" as="font" type="font/woff2" crossorigin> 
<link rel="preload" href="/lib/fonts/source-code-pro-v14-latin-regular.woff2" as="font" type="font/woff2" crossorigin> 
<link rel="preload" href="/lib/fonts/roboto-mono-v13-latin-500.woff2" as="font" type="font/woff2" crossorigin> 
<link rel="preload" href="/lib/fonts/source-sans-pro-v14-latin-700.woff2" as="font" type="font/woff2" crossorigin> 
<link rel="preload" href="/lib/fonts/source-sans-pro-v14-latin-600.woff2" as="font" type="font/woff2" crossorigin> 
<link rel="preload" href="/lib/fonts/freckle-face-v9-latin-regular.woff2" as="font" type="font/woff2" crossorigin> 

xD

0
johnny_Be_good napisał(a):

Poczekamy na Riddle

Sugerujesz że Riddle, to taki pre release wersja ChatGTP, która wyciekła i sie usamodzielniła ?
To się trzyma kupy

0
johnny_Be_good napisał(a):

Usunąłem wpisz"</input>" i jest to samo.
"Jest źle bo jest".
To są Twoje argumenty?

No i super, po wymuszeniu na Tobie zastosowałeś jedną z dwóch porad, to teraz druga i możemy jechać dalej, a nie naciągasz mnie po więcej, mając gdzieś co napisałem wcześniej. Po cholerę mam się produkować, skoro to i tak olewasz?

Dodaj doctype.

Bonusowa rada, niech Ci będzie: popraw od razu wszystko, na co czym https://validator.w3.org/ płacze

0
johnny_Be_good napisał(a):

Zmieniłem na "relative" dalej nie przestaje ładować, usunąłem cały styl też to samo.

Co to znaczy nie przestaje się ładować? Co pokazuje konsola błędów i ogólnie dev toolsy?

Bo potoczne "nie przestaje się ładować" może oznaczać różne rzeczy takie jak:

  • JS wpada w wieczną pętlę
  • przeglądarka wpada w wieczną pętlę przekierowań
  • przeglądarka cały czas doczytuje jakieś zasoby
  • przestało się ładować i pojawił się błąd
  • kod JS, który miał się odpalić, się nie odpalił z jakichś powodów (czy to z błędu, czy ze złego warunku, czy złego podpięcia zdarzenia itp.)
  • jeszcze co innego?
0

@dzek69: Ale ja na prawdę ukrzyżowałem tego Jezusa przez przypadek, zobacz co pokazała mi przeglądarka.
Masz taki błąd mi pokazał ten validator

Error: Bad character 6 after <. Probable cause: Unescaped <. Try escaping it as &lt;.

At line 139, column 15

↩for(let u=0;u<6;u++){↩przycis"\

Stronka wykorzystała cały "potencjał" JS i wypluła taki komunikat.

![111111.jpg](https://4programmers.net/uploads/120447/sAkqij0pFmxnPPKafIfV9ZZheJKVEXnLM60Mscvg.jpg111111.jpg

@LukeJL:

Usunięcie tej linijki sprawia, że ikonka ładowania przestaje się obracać.

tmp.innerHTML="<input  style='display:fixed;position:relative;cursor:pointer;width:90%;height:90%;left:1%;top:0%;
background-color:RGB(80,0,0);cursor:pointer;z-index:9723;' type='checkbox' onClick='sprawdz();'></input>";

Funkcja sprawdz(); istnieje, zasobu żadnego tam nie dołączam.

1

a może problem jest gdzie indziej?
Zauważyłem, że używasz tam document.write, może w tym jest problem?
Tutaj radzą, żeby document.close() wywołać https://stackoverflow.com/questions/12595819/ff-keeps-spinning-after-document-write

Ale na dłuższą metę używanie document.write nie ma sensu

0

@LukeJL: i faktycznie chyba miałeś rację, Nie wykonałem document.close() po zapisie 8 elementów.
thx

1 użytkowników online, w tym zalogowanych: 0, gości: 1