Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Script nefunkční v Google chrome

Mám chat normálně <FRAMESET> z jedné stránky odkazuju

<A href="javascript:smajl('*1*')" target="formular"><img border="0" title="*1*" src="/images/smiles/chat/1.gif" alt="*1*"></A>

do druhé kde je formulář

<FORM NAME="formular" ACTION="formular.php" METHOD="POST">
   <INPUT TYPE="TEXT" NAME="zprava" MAXLENGTH="1000" SIZE="75" AUTOCOMPLETE="off">
</FORM>

mam na to script

function smajl(t) {document.all.zprava.value+= ' ' + t; } 

  var DHTML = (document.all || document.layers);     

  
    function getObj(name) {     

    if (document.all) {     

      return document.all[name].style; }
    else if (document.layers) {     

      return document.layers[name]; }
  }

všechno to funguje v opeře,IE,mozille ale né v google chrome nevíte proč ?

loading...
Předmět Autor Datum
Chrome nemá konzolu, která vypisuje chyby?
host 06.08.2010 20:58
host
Upřímně nevím něco takového slyším prvně.
paja22 06.08.2010 21:01
paja22
Tak prý ji má. :-) http://www.google.com/chrome/intl/en/webmasters-fa q.html#jsexec
host 06.08.2010 21:04
host
Tak koukam tu na to ale asi sem to správně nepochopil jak přesně to mam zkontrolovat.
paja22 06.08.2010 21:13
paja22
8. My JavaScript isn't executing properly Nic?
karel 06.08.2010 21:18
karel
Ukazuje to. Uncaught TypeRrror: Cannot read property 'value' of undefined js.js:17
paja22 06.08.2010 21:27
paja22
Zkus místo document.all.zprava.value použít document.getElementById("value")
host 06.08.2010 21:44
host
Tak v tom případě to nejde vůbec.
paja22 06.08.2010 21:54
paja22
Ej, chybička. Co tohle? document.getElementById("zprava")
host 06.08.2010 22:02
host
Pořád nic a ta konzole píše Uncaught ReferenceError: Invalid left-hand side in assignment js.js:17
paja22 06.08.2010 22:13
paja22
Potrebuješ sa dostať k elementu name="zprava". To spraviš buď tak, že tomu elementu nastavíš id="zpr…
los 06.08.2010 22:17
los
Přidal sem tedy id="name" a script zkrátil až z něj zbylo jen function smajl(t) {document.getElemen…
paja22 06.08.2010 23:02
paja22
Namiesto id="name" pridaj id="zprava". Tá chyba znamená, že sa nenašiel prvok s id="zprava" (documen…
los 07.08.2010 19:49
los
To byla moje chyba napsal sem sice id="name" ale použil sem id="zprava" a chrome pořád stávkuje.
paja22 07.08.2010 23:12
paja22
Mhm, vyzerá to tak, že Chrome pri volaní odkazu s pseudoprotokolom javascript a targetom nastaveným…
los 07.08.2010 23:33
los
Jo tohle už je funkční a k tomu mam to v externím souboru ten script. poslední
paja22 07.08.2010 23:49
paja22

Potrebuješ sa dostať k elementu name="zprava".
To spraviš buď tak, že tomu elementu nastavíš id="zprava" - potom sa k nemu dostaneš pomocou document.getElementById("zprava") a hodnotu mu nastavíš cez vlastnosť value:

document.getElementById("zprava").value += " " + t;

Prípadne cez document.forms["formular"].elements["zprava"].valu e.

Ten zvyšok skriptu (var DHTML a function getObj) môžeš vymazať - ten kód vyzerá, ako keby vznikol v roku 1990 a ani ho tam nikde nepoužívaš.

Přidal sem tedy id="name" a script zkrátil až z něj zbylo jen

function smajl(t) {document.getElementById("zprava").value += " " + t;} 

ale opět všude funkční krom chrome schválně sem kouknul na tu konzoly a ukázala:
"Uncaught TypeRrror: Cannot read property 'value' of null js.js:4".

Mhm, vyzerá to tak, že Chrome pri volaní odkazu s pseudoprotokolom javascript a targetom nastaveným na inú stránku vykonáva tú funkciu v kontexte zdrojovej stránky namiesto cieľovej.

Ty máš zrejme tú funkciu smajl definovanú na oboch stránkach, preto ti to namiesto Uncaught ReferenceError: smajl is not defined vypísalo Uncaught TypeError: Cannot read property 'value' of null.

Takže by malo stačiť zavolať tú funkciu priamo z cieľového okna napr. pomocou takéhoto odkazu v zdrojovom okne:

javascript:parent.frames['formular'].smajl('*1*')

Zpět do poradny Odpovědět na původní otázku Nahoru

loading...