Sűrgős JavaScript segítség kéne!
2002-10-25T20:00:40+02:00
2002-10-27T00:25:07+02:00
2022-07-19T05:44:27+02:00
  • Véletlenül nem végtelen ciklusba hajszolod szerencsétlent?? (Legegyszerűbb ennek kiderítésére ha egy alert()-et raksz a rutinodba, mert akkor látod, ha egymás után kismilliószor hívódik meg...)
    Mutasd a teljes hozzászólást!
  • Kicsit leegyszerűsíteném a problémát:

    Hogyan lehet javascript-el létrehozni olyan dokumentumot, ami tartalmaz egy másik javascriptet?
    pl. ami nálam nem működik:
    <SCRIPT language="JavaScript" src="main.js"></SCRIPT>
    <SCRIPT language="JavaScript">
    document.write("<HTML><HEAD><TITLE>Teszt</TITLE>");
    document.write("<SCRIPT language='javascript' src='main.js'></SCRIPT>");
    document.write("</HEAD><BODY>Teszt</BODY></HTML>");
    </SCRIPT>

    Az idézőjelen belüli </SCRIPT> stringet értelmezi a böngésző és kilép a script-módból. Namost erre a következőt találtam ki: Csinálok a main.js-ben egy fejlec() függvényt, ami így néz ki:
    function fejlec()
    { return "<HTML><HEAD><TITLE>Teszt</TITLE><SCRIPT language='javascript' src='main.js'></SCRIPT></HEAD>"; }

    És ezt a függvényt hívom meg:
    document.write(fejlec());
    Ezzel ugye kikerültem a </SCRIPT>-et a kódban, tehát meg is van a megoldás. CSAKHOGY mégsincs, ugyanis az IE egész egyszerűen lefagy, miután másodszor hívom meg az egyik main.js-ben található függvényt az ezen "trükkel" létrehozott dokumentumból...
    Mutasd a teljes hozzászólást!
  • Nemigaz, hogy 1db javascripthez értő emberke sincs ezen a fórumon
    Mutasd a teljes hozzászólást!
  • Üdvözletem!

    Van egy nagy problémám a javascript-el kapcsolatban, remélem valaki tudja a megoldást. Arról van szó, hogy van egy sok frame-ből álló oldal. Az egyik frame-ben sok-sok link van, csak úgy egymás alatt listaszerűen. Ha valamelyik link-re rákattintok akkor egy másik frame-ben megjelennek az adott linkhez tartozó információk. Ezeket az információkat JavaScript-el töltöm be az adott frame-be. Maga a betöltő függvény egy main.js file- ban van eltárolva, ezért a listát tartalmazó oldalban van egy ilyen sor:

    <SCRIPT language="JavaScript" src="../../../main.js"></SCRIPT>

    Ebből egyből látszik egy másik dolog, nevezetesen, hogy a main.js 3 szinttel feljebb van a könyvtárstruktúrában, de ez eddig nem okozott gondot.

    A probléma abból adodik, hogy a meghívott függvénynek két paramétere is van: egy listaazonosító és egy listaelem azonosító, mivel a listát tartalmazó frame-be több lista is betöltődhet. Így hívom meg a függvényt:

    <a class="lista" href="javascript:info('listaazonosito', 'listaelem')"> Listaelem </a><br>

    Az info függvény meg így néz ki:

    function info(lista, elem)

    {
    temp = new Array();
    switch (lista) {
    case "1":
    ///////////////////////////////////////////////////////////
    switch (elem) {
    case "elso":
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    break;
    case "masodik":
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    break;
    case "harmadik":
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    break;
    case "harmadik":
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    break;
    ///////////////////////////////////////////////////////////
    break;
    case "2":
    ///////////////////////////////////////////////////////////
    switch (elem) {
    case "elso":
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    break;
    case "masodik":
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    break;
    case "harmadik":
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    break;
    case "harmadik":
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    break;
    ///////////////////////////////////////////////////////////
    break;
    case "3":
    ///////////////////////////////////////////////////////////
    switch (elem) {
    case "elso":
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    break;
    case "masodik":
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    break;
    case "harmadik":
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    break;
    case "harmadik":
    temp.push(new Array("info0", "info1", "info2", "info3", "info4"));
    break;
    ///////////////////////////////////////////////////////////
    break;
    }
    top.info.document.close();
    top.info.document.write("<HTML><head><title>Teszt</title>");
    top.info.document.write("<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">");
    top.info.document.write("<link href="../../../main.css" rel="stylesheet" type="text/css">");
    top.info.document.write("<SCRIPT language="JavaScript" src="../../../main.js"></SCRIPT>");
    top.info.document.write("</head>");
    top.info.document.write("<body class="lightblueback">");
    top.info.document.write("<table border="0" width="95%">");
    for (var i=0; i<temp.length; i++)
    {
    top.info.document.write("<tr><td>");
    top.info.document.write("<table border="0" width="100%">");
    top.info.document.write("<tr><td class="border">");
    top.info.document.write("<table border="0" width="100%">");
    top.info.document.write("<tr><td class="midblue"><b>" + temp[0] + "</b></td>");
    top.info.document.write("<td class="midblue">Információ:<b>" + temp
    [3] + " </b></td></tr></table>");
    if (temp[1] == 0)
    { top.info.document.write("<table border="0" width="100%"><tr><td class="midblue"><img src="../../../kepek/other/ noimage.jpg" border="0">"); }
    else
    { top.info.document.write("<table border="0" width="100%"><tr><td class="midblue"><img src="../kepek/info/" + orak
    [0] + "_x.jpg" border="0">"); }
    top.info.document.write("</td></tr></table>");
    top.info.document.write("<table border="0" width="100%"><tr>");
    top.info.document.write("<td class="midblue">" + orak[2] + "</td>");
    top.info.document.write("<td class="midblue" width="80"><a class="reszletek" href="javascript:reszletek('" + temp
    [0] + "', '" + temp[1] + "', '" + temp[2] + "', '" + temp[3] + "', '" + temp[4] + "')">Részletek </a></td></tr></table>");
    //</a>
    top.info.document.write("</td></tr></table></td></tr>");
    }
    top.info.document.write("</table>");
    top.info.document.write("</body></HTML>");
    }

    A gond az, hogy az ezzel újonnan létrehozott dokumentumban is van egy link egy másik, ugyancsak javascript-tel létrehozandó új dokumentumra
    (Részletek), és ehhez már 5 paraméter is van. Van még egy reszletek függvény, ugyancsak a main.js-ben, de azt már nem írom le, mert meg sem hívódik...

    Internet explorer 6-al próbáltam, alul megjelenik, hogy error on page, és a részletekben annyi van, hogy "Unterminated String Constant". Ez akkor jelenik meg, ha bármelyik listaelemre rákkatintok, attól függeltenül, hogy az "info" -frame-ben megjelennek a kívánt adatok, és ott van a link a részletekre is. Ha viszont a részletekre kattintok, akkor nem történik semmi, a hiba pedig: "Object Expected". És itt jön a poén: ha megnézem a forrást, és elmentem másképp és úgy nyitom meg, akkor működik a részletek is.
    Mutasd a teljes hozzászólást!
abcd