JavaScript

Witam mam plik index.html i main.js. W index mam:
body>
p id=„demo1”>


p id=„demo2”>


/body>
w main mam:
let x = 5;
x++;
let z = x;
document.getElementById(„demo1”).innerHTML = z;

Moje pytanie i problem jednocześnie to, czemu mi nie działa ten skrypt. Jeśli stworzę button i funkcję wszystko działa. Piszę w notepad++. Pousuwałem nawiasy z index przy pisaniu tematu bo się nie wyświetało. Pozdrawiam

Dodam jeszcze, że jak umieszczę kod z main.js w body w skrypt wszystko działa.

Edytuj wiadomość, wstaw formatowanie kodu zgodnie z Discourse Guide: Code Formatting - Meta - Stonehearth Discourse → Block code formatting

Trzeba dać 3 znaki ` przed i po kodzie, wtedy będzie ładnie wyglądać. Bez tego pewne elementy są „zjedzone” i trudno powiedzieć gdzie w kodzie jest problem.
obraz

1 polubienie

Pastebin służy do celu udostępniania kodu programu w takich wypadkach. Pełna lista stron w linku poniżej.

Post pomieści 32 tysiące znaków i md wspiera kolorowanie składni jak po 3 ``` doda się nazwę języka gdy domyślne wykrycie jest średnie.

<!DOCTYPE html>
<html lang="en">
  
  <head>
    <meta charset="utf-8">
    <meta name="description" content="[add page description]">
    <meta name="keywords" content="[add content keywords]">
    <title>[add page title]</title>
  </head>
  
  <body>
        <b> html na auto </b>
  </body>
  
</html>
/* css na preferowanym kolorowaniu zamiast auto */
b {
    font-weight: bold
}

A kod pierwszego posta można cytować i uzyskać całość lub nawet w rawie otwierać:

https://forum.dobreprogramy.pl/raw/662200/1

obraz

Obstawiam, że celowo usunął wszystkie < i można je uzupełnić ręcznie.


Jak pliki masz na dysku to może Firefox blokuje dostęp do odległego pliku main.js:

Struktura katalogów strony WWW:

Więc jak plik js jest w katalogu nad to może stąd nie działa wcale. Wtedy może trzeba się zainteresować jak uruchamiać lokalny serwer, ten z pythona może wystarczy jak nie będzie działać w tle cały dzień.

<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <meta http-equiv="Content-Language" content="pl">
    <meta name="viewport" content="width=device-width" />

    <title>Generator</title>
	<script src="main.js"></script>
    <link rel="stylesheet" href="arkusz.css">
  </head>

  <body>
	

<p id="demo1"></p>
<p id="demo2"></p>

  </body>
</html>

Taki mam index.html

let x = 5;
x++;
let z = x;
document.getElementById("demo1").innerHTML = z;

a taki main.js

Ponieważ main.js jest w nagłówku, to załącza się i wykonuje zanim załaduje się reszta HTML. Z punktu widzenia kodu w main.js, elementu „demo1” jeszcze nie ma, o czym sygnalizuje przeglądarka (po przyciskem F12 w zakładce „konsola”

obraz

Korzystaj z tego często, jeżeli używasz JavaScriptu.

Co można zrobić?

  1. Przenieść ładowanie pliku js za HTML’em do którego się odwołuje, czyli:
	<p id="demo1"></p>
	<p id="demo2"></p>
	<script src="main.js"></script>

  </body>
</html>
  1. W pliku main.js kod umieścić w funkcji, która wywoływna jest dopiero gdy cała strona się załaduje, czyli:
window.addEventListener('load', function () {
	let x = 5;
	x++;
	let z = x;
	document.getElementById("demo1").innerHTML = z;  
})

i to jest bardziej eleganckie rozwiązanie.

Zapoznaj się też z różnymi bibliotekami ułatwiających życie z Javascript, jak np jQuery, czy co tam teraz jest na czasie.

Ewentualnie, zawsze możesz skorzystać, ze sztucznej inteligencji, np Bing Chat. Tego typu problemy dosyć gładko rozwiązuje

wpisałem w chatGPT napisał, że wszystko wygląda dobrze i dał linki do różnych stron. Nie miałem już pomysłów więc dobreprogramy na kłopoty. Dziękuję i pozdrawiam.

Darmowa wersja ChatGPT to wersja 3 i zdaje się, że ją trochę okroili. Bing Chat jest mocniejszy, a płatny ChatGPT to już potęga.

Jak ogarnie polskie prawo zamiast cytowania bełkot to może może.

Na poradach prawnych od AI to ja bym nie polegał. Chyba, że to by była AI wytrenowana specjalnie do interpretacji prawa, ale wciąż na dziś dzień darzyłbym taką AI ograniczonym zaufaniem. Raczej na zasadzie, żeby zweryfikować samemu niż wierzyć.

Informatyka bezpieczniejsza, bo albo to co wygeneruje AI, działa albo nie. Jak nie działa to od razu wiesz i próbujesz dalej.