FF in JavaScript

Pozdravljeni ...

Nekako nisem mogel preiti na FF ampak mi je uspelo :) in sem si ga tudi prilagodil. Večina oz skoraj večina bi naj uporabljala Firefox pa sem se tudi jaz pridružil tej družini :D! Sicer ne vem zakaj nekatere strani nalaga po delih v primerjavi z IE (prej sem namreč uporabljal Avant Browser).

No pa da preidem na moje vprašanje:
Zakaj mi ta del JavaSkripta ne prikaže gumba?

<HTML>
<SCRIPT>
function insertScript(){
var sHTML="<input type=button onclick=" + "go2()" + " value='Click Me'><BR>";
var sScript="<SCRIPT DEFER>";
sScript = sScript + "function go2(){ alert('Hello from inserted script.') }";
sScript = sScript + "</SCRIPT" + ">";
ScriptDiv.innerHTML = sHTML + sScript;
}
</SCRIPT>
<BODY onload="insertScript();">
<DIV ID="ScriptDiv"></DIV>
</BODY>
</HTML>

Ta del je tudi na tej strani .

V tem primeru pa mi prikaže gumb in tudi izvede se akcija.

<html>
<head>
<script language="JavaScript">
function pritisnigumb() {
alert("Zdravo!");
}
</script>
</head>
<body >

<form>
<input type="button" name="Gumb1" value="Pritisni me" onclick="pritisnigumb()">
</form>

</body>
</html>

Vesel bi bil kakšnega komentarja še bolj pa kakšne razlage (predvsem zgornjega primera)

Lp

5 odgovorov

Zgoraj ti npr. manjka <head> tag ... :-/

Uporabljaj orodja kot so FireBug ipd. za debuggiranje JS, DOM in ostalih client-side problemov ...

BTW: FireFox sux ... v primerjavi z Opero. hehe ;)

ScriptDiv.innerHTML = sHTML + sScript;

Ne moreš kr direktno po id-ju klicat. Moraš uporabit mislim da document.getElementByID('ScriptDiv')... //samo poglej točno kodo ker nisem 100% ..
če uporabljaš prototype mootools ali podobne stvari pa imaš $('ScriptDiv')...

Pa nujno inštaliraj FireBug ker pol se pa da kej pametnega v JS delat.

Hvala vama za priporočilo FireBug-a.

Takšen primer je bil na strani (dodal sem tudi link do strani) ampak še vedno ne vem zakaj ne deluje v FF v IE pa prikaže gumb.

Meni tale tvoja koda v FF prikaze gumb, funkcije pa seveda ni in ob kliku na gumb dobim napako, da funkcija ne obstaja. Javascript kode normalno ne mores dodajati kar preko innerHTML propertyja, ocitno (glede na link, ki si ga dal) to sicer v IE deluje s parametrom DEFER, ampak navadno to ne deluje tako. Lahko poves, zakaj potrebujes to dinamicno dodajanje funkcije, pa rajsi najdemo workaround?

V bistvu je tako, da nekaj stvari v JavaScriptu vem ampak to je tisto, kar je bolj vrh. Ker sem pa raziskoval in hotel nekaj več izvedeti še o Ajax-u in gresta skupaj z JS sem naletel na ta del, ker pa je pri nas (ali pa vsaj v knjžnicah v mojem dosegu) zelo malo, da bi kaj več pokazale kot "Helllo World" in še kakšno pojavno opozorilo (alert ... sem imel v mislih). Kadar naletiš na kaj več pa ne najdeš knjige, ki bi vsebovala kaj več (v smislu razlage). Tako, da kot samouk sem potem odvisen od strička Googla :) različnih forumov in od prijateljev, ki to obvladajo ... npr JS, PHP, AJAX, SQL, če jih imaš (žal nisem te sreče).

V večini mi ostane, da se učim od primerov ali na primerih ampak če ga ne znam razumeti (razrešiti), potem se nisem nič naučil.

Tako je tudi v tem primeru.

Sicer sem iskal način glede ankete na svoji strani, da se mi ob "oddaji glasu" ne naloži ponovno stran ... in sem uspel rešiti oziroma prilagodil del kode, da se izvaja po mojih željah, včasih pač malo dalje traja :( ...

Pri tem primeru po katerem sprašujem, me je pa zmotilo to, da se mi ne prikaže gumb in bi pač rad vedel kje je napaka oziroma kaj je krivo ali moja nastavitev FF ali je napaka kje drugje... In če se da komu kaj več napisati bi bil vesel, če pa ne pa tudi prav...

Lp