Chyba v IE – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Chyba v IE – JavaScript, AJAX, jQuery – Fórum – Programujte.comChyba v IE – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Earl Cash0
Věrný člen
28. 12. 2007   #1
-
0
-

potreboval bych pomoci s hledanim chyby ktera se objevuje pouze u IE...kontroloval jsem jestli jsem nahodou nepouzil nejakych pro IE exotickych funkci ale zadnou takovou jsem neobjevil. chyba by mela byt (na zaklade tvrzeni debuggeru) na radku 14 znak 3. bohuzel jak byva zvykem tento radek je pouhe "odenterovani" takze chyba tam neni. zameril jsem se proto na radek predchozi ktery je trochu chaoticky ale ani tam jsem nepochodil. preju dobry lov ;)



function AddUser(user_no) {

document.getElementById("ucty").innerHTML+="<tr> <td> <input type='text' name='login_"+user_no+"' value='' /> </td> <td> <input type='password' name='heslo_"+user_no+"' value='' /> </td> <td> <select name='prava_"+user_no+"'> <option value='none'></option> <option value='redaktor'>Redaktor</option> <option value='admin'>Admin</option> </select> </td> <td> <input type='text' name='name_"+user_no+"' value='' /> </td> <td> <input type='text' name='surname_"+user_no+"' value='' /> </td> <td> <input type='text' name='mail_"+user_no+"' value='' /> </td> </tr>";

document.getElementById("max_user").value=++user_no;

}

Nahlásit jako SPAM
IP: 193.85.184.–
Oh my goodness, shut me down! Machines making machines. How perverse. (C-3PO)
Petroff0
Věrný člen
31. 12. 2007   #2
-
0
-

[Spusť si oboje v IExploreru]

1. Kde je chyba

<html><head></head><body>


<table id="ucty" width="100%" cellpadding="4" cellspacing="0" border="1">
<tr> <td>BUNKA1</td> <td>BUNKA2</td> <td>BUNKA3</td> <td>BUNKA4</td> <td>BUNKA5</td> <td>BUNKA6</td> </tr>
</table>

<script>
var user_no=22;
var oTable = document.getElementById("ucty");

/************* Co provede IE ve tvém kódu, kde používáš: [table].innerHTML = "xxxx" *************/

var obsah = oTable.innerHTML; /* původní obsah */
alert(obsah);
oTable.innerHTML = obsah; /* U tabulky tuto operaci nelze provést => v IE způsobí chybu */

var obsah = oTable.innerHTML + "<TR><TD><INPUT type='text' value=' . . . . ' /></TD></TR>"; /* nový obsah */
alert(obsah);
oTable.innerHTML = obsah; /* TOTÉŽ => v IE způsobí chybu */
</script>

</body></html>

2. Náprava
<html><head></head>

<body>
Max_user (type=hidden): <input type='text' id='max_user' name='max_user' value='22' /><br />
<table id="ucty" width="100%" cellpadding="4" cellspacing="0" border="1">
<tr> <td>BUNKA1</td> <td>BUNKA2</td> <td>BUNKA3</td> <td>BUNKA4</td> <td>BUNKA5</td> <td>BUNKA6</td> </tr>
</table>

<script>
var user_no=22;
var oTable = document.getElementById("ucty");

/******************************************* Správný způsob: ************************************************/

var oRow = oTable.insertRow(-1); /* vložit na konec tabulky prázdný řádek */
var oCell = oRow.insertCell(-1); /* vložit na konec řádku buňku a do ní obsah */
oCell.innerHTML = "<input type='text' name='login_"+user_no+"' value='' />";
var oCell = oRow.insertCell(-1); /* .......další buňku */
oCell.innerHTML = "<input type='password' name='heslo_"+user_no+"' value='' />";
var oCell = oRow.insertCell(-1); /* .......další buňku */
oCell.innerHTML = "<select name='prava_"+user_no+"'> <option value='none'> --- </option> <option value='redaktor'>Redaktor</option> <option value='admin'>Admin</option> </select>";
var oCell = oRow.insertCell(-1); /* .......další buňku */
oCell.innerHTML = "<input type='text' name='name_"+user_no+"' value='' />";
var oCell = oRow.insertCell(-1); /* .......další buňku */
oCell.innerHTML = "<input type='text' name='surname_"+user_no+"' value='' />";
var oCell = oRow.insertCell(-1); /* .......další buňku */
oCell.innerHTML = "<input type='text' name='mail_"+user_no+"' value='' />";
</script>

<script id="kod">
/************************************************ HOTOVÁ FUNKCE: ************************************************************/
function AddUser(user_no)
{
var row = document.getElementById("ucty").insertRow(-1);
row.insertCell(-1).innerHTML="<input type='text' name='login_"+user_no+"' value='' />";
row.insertCell(-1).innerHTML="<input type='password' name='heslo_"+user_no+"' value='' />";
row.insertCell(-1).innerHTML="<select name='prava_"+user_no+"'><option value='none'></option><option value='redaktor'>Redaktor</option><option value='admin'>Admin</option></select>";
row.insertCell(-1).innerHTML="<input type='text' name='name_"+user_no+"' value='' />";
row.insertCell(-1).innerHTML="<input type='text' name='surname_"+user_no+"' value='' />";
row.insertCell(-1).innerHTML="<input type='text' name='mail_"+user_no+"' value='' />";
document.getElementById("max_user").value=++user_no;
}
</script>
<pre style='color:blue;font-size:12px'>
<script>
var txt=document.getElementById("kod").innerHTML;
document.write(txt,txt.replace(/&/g,'&').replace(/>/g,'>').replace(/</g,'<'));
</script>
</pre>
</body>
</html>

Spustit + otestovat v jiných browserech (pro jistotu!!!!). Kód<=copy/paste:

Nahlásit jako SPAM
IP: 89.102.96.–
Earl Cash0
Věrný člen
9. 1. 2008   #3
-
0
-

omlouvam se ze pozdni odpoved ale zapomel jsem si zaskrtnout sledovani tohoto threadu... nepotreboval jsem zrovna vysledek jen male "nakopnuti" abych si to vyresil sam :)) . ale stejne mnohokrat diky ti :)

row.insertCell(-1)

zvlast diky za tuto funkci :) ta se mi bude urcite hodit.

Nahlásit jako SPAM
IP: 193.85.184.–
Oh my goodness, shut me down! Machines making machines. How perverse. (C-3PO)
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Podobná vlákna

Chyba? — založil  

Chyba v c — založil bohetik

Chyba C++ — založil AnonImouS

Chyba — založil Racak94

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý