[mozilla firebird] javascript functie probleem

Pagina: 1
Acties:

  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 17-08 14:38
Ik zit met het probleem dat mijn javascript niet werkt in firebird, maar wel in IE.
Ik krijg de foutmelding dat link geen functie is.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script language="javascript" type="text/JavaScript">
function link(tid)
{
    var pop = window.open ("","selecteer_template","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,copyhistory=0,width=850,height=600,left=10,top=100");
    pop.document.open();
    pop.document.write("<html><body>");
    pop.document.write("Klik op een van de onderstaande pagina's om als link toe te voegen<p>");
    pop.document.write("<a href=javascript:window.opener.document.forms[tid].elements[ 'naam' ].value=psp2.main?mid=0;self.close();>HOME</a>");
    pop.document.close();
}
</script>
<form method="get" action="cms.ontvang2">
<input type="button" onclick="javascript:link(1)">
</form>

wat kan het probleem zijn.
ik heb wel iets gelezen over een event meegeven, maar het gaat hier alleen om een parameter doorgeven. zonder parameter werkt het echter wel

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


  • Willem
  • Registratie: Februari 2001
  • Laatst online: 19-08 23:05
Waarom niet gewoon een pagina openen in je popup?

Motor (of auto) onderhoud bijhouden


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 04-08 07:59

chem

Reist de wereld rond

onClick hoef je geen javascript: voor te zetten
zet de href=... tussen quotes
sluit je html en body af

Klaar voor een nieuwe uitdaging.


  • Rickets
  • Registratie: Augustus 2001
  • Niet online

Rickets

Finger and a shift

In ieder geval moet je bij onclick javascript: weglaten :)

If some cunt can fuck something up, that cunt will pick the worst possible time to fucking fuck it up, because that cunt’s a cunt.


  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 17-08 14:38
Het gaat hier om een dynamische site.
Het is voor een cms gedeelte.
in de bepaalde pagina waar dit moet komen, staan verschillende(lees +/- 20) verschillende forms.
deze forms bevatten de elementen voor de templates waaruit de site opgebouwd moet worden.
nu moet de popup "weten" om welk template het gaat. daarom wil ik dus
de tid(template_id) meegeven aan die functie, maar dit werkt niet in FB.
Is er, wanneer deze optie niet mogelijk is, een andere manier om dit probleem op te lossen?

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 13:48

crisp

Devver

Pixelated

en hernoem je functie; blijkbaar is link een reserved name

Intentionally left blank


Verwijderd

Ik denk dat link een gereserveerd woord is.

  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 17-08 14:38
crisp schreef op 18 november 2003 @ 16:01:
en hernoem je functie; blijkbaar is link een reserved name
Dit blijkt de juiste oplossing te zijn.
Ik had link al veranderd in links, maar dit is dan schijnbaar ook een reserved word.
Nu zit ik alleen nog met het probleem dat de variable niet meegegeven word.
dit is nu de code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
            <script language="javascript" type="text/JavaScript">
            function linken(tid)
            {
            var pop = window.open ("","selecteer_template","toolbar=0,location=1,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,copyhistory=0,width=850,height=600,left=10,top=100");
            pop.document.open();
            pop.document.write("<html><body>");pop.document.write("Klik op een van de onderstaande pagina's om als link toe te voegen<p>");pop.document.write("<a href=javascript:window.opener.document.forms['tid'].elements[ 'naam' ].value=psp2.main?mid=0;self.close();>HOME</a>");pop.document.close();
        }
        </script><body>
        <form method="get" action="cms.ontvang2">
        <input type="button" onclick="linken(1)">
        </form>
        </body></html>

en resulteerd in de popup in:
code:
1
<html><body>Klik op een van de onderstaande pagina's om als link toe te voegen<p><a href=javascript:window.opener.document.forms['tid'].elements[ 'naam' ].value=psp2.main?mid=0;self.close();>HOME</a></body></html>

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 13:48

crisp

Devver

Pixelated

Verwijderd schreef op 18 november 2003 @ 16:03:
Ik denk dat link een gereserveerd woord is.
even nagekeken, maar toch niet. Het vreemde is dat als ik bijvoorbeeld onload de functie link() aanroep het wel werkt. Vreemd bugje dus blijkbaar :)

sturkel: zet ook quotes om je attributen, met name je href in je popup - daar staan spaties in namelijk... (js in een event handler zetten geniet echter toch de voorkeur boven een href)

[ Voor 27% gewijzigd door crisp op 18-11-2003 16:13 ]

Intentionally left blank


  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 17-08 14:38
Hoe kan ik die evenhandler dan eraan hangen, want wat ik ook probeer, ik krijg het script niet werkend.

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

crisp schreef op 18 november 2003 @ 16:10:
[...]

even nagekeken, maar toch niet. Het vreemde is dat als ik bijvoorbeeld onload de functie link() aanroep het wel werkt. Vreemd bugje dus blijkbaar :)
Wazig... Netscape reference zegt van niet, terwijl ik hem wel degelijk op sites tegenkom...

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 13:48

crisp

Devver

Pixelated

JavaScript:
1
pop.document.write('<a href="#" onclick="opener.document.forms[\'tid\'].elements[\'naam\'].value=\'psp2.main?mid=0\';window.close();">HOME</a>');

Intentionally left blank


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 13:48

crisp

Devver

Pixelated

BtM909 schreef op 18 november 2003 @ 16:29:
[...]


Wazig... Netscape reference zegt van niet, terwijl ik hem wel degelijk op sites tegenkom...
ja, maar link != Link (zoals in jouw link), en het vreemde is dat Moz het bijvoorbeeld wel pikt in de onload event handler, of gewoon los buiten een event handler

Intentionally left blank


  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 17-08 14:38
crisp schreef op 18 november 2003 @ 16:31:
JavaScript:
1
pop.document.write('<a href="#" onclick="opener.document.forms['tid'].elements['naam'].value='psp2.main?mid=0';window.close();">HOME</a>');
hierbij krijg ik de volgende error:
code:
1
Error: opener.document.forms.tid has no properties

ik wordt hier niet vrolijk van.
wat is er hier nog mis mee? :'(

[edit]
als ik echter
opener.document.forms['tid'] verander in
opener.document.forms['naam van form']
werkt het wel

[ Voor 23% gewijzigd door sturkel op 18-11-2003 17:04 ]

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 13:48

crisp

Devver

Pixelated

geef je form nog even een id="tid" dan ;)
(ik zie trouwens ook geen input element met name="naam")

[ Voor 42% gewijzigd door crisp op 18-11-2003 17:01 ]

Intentionally left blank


  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 17-08 14:38
crisp schreef op 18 november 2003 @ 17:00:
geef je form nog even een id="tid" dan ;)
(ik zie trouwens ook geen input element met name="naam")
tid moet de value overnemen van tid die als functie parameter wordt meegegeven
de code tot heden:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<script language="javascript" type="text/JavaScript">
function linken(tid)
{
var pop = window.open ("","selecteer_template","toolbar=0,location=1,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,copyhistory=0,width=850,height=600,left=10,top=100");
pop.document.open();
pop.document.write("<html><body>");
pop.document.write("Klik op een van de onderstaande pagina's om als link toe te voegen<p>");
pop.document.write('<a href="#" onclick="opener.document.forms[\'tid\'].elements[\'naam\'].value=\'psp2.main?mid=0\';window.close();">HOME</a>');
pop.document.close();
}
</script><body>
<form name="a" method="get">
<input type=text name="naam">
<input type="button" onclick="linken('a')">
</form>
</body></html>

[ Voor 80% gewijzigd door sturkel op 18-11-2003 17:09 ]

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 13:48

crisp

Devver

Pixelated

aha, tid moet dus dynamisch naar een form verwijzen?

zoiets dus:
JavaScript:
1
pop.document.write('<a href="#" onclick="opener.document.forms[\''+tid+'\'].elements[\'naam\'].value=\'psp2.main?mid=0\';window.close();">HOME</a>');


edit: en zet er ook even een:

code:
1
pop.document.write('</body></html>');

tussen...

[ Voor 18% gewijzigd door crisp op 18-11-2003 17:10 ]

Intentionally left blank


  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 17-08 14:38
Het is geweldig.
Dit is de oplossing.
Nu nog alles netjes in een pl/sql pagina zetten en kijken of het werkt

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 17-08 14:38
Het is helaas niet gelukt.
wanneer ik de code hard in html zet werkt het, maar ik krijg het niet dynamisch in de pl/sql code
de relevante code staat hieronder.
main page:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
    begin
        null;
        htp.prn('
        <script language="javascript" type="text/JavaScript">
        function showTemplates()
        {
        var pop = window.open ("","selecteer_template","toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=0,copyhistory=0,width=850,height=600,left=10,top=100");
        pop.document.open();
        ');
        htp.prn('pop.document.write("<html>");');
        popupLink;
        begin
            for node in (select * from website_template where template_id <> 0) loop
                htp.prn('pop.document.write("<form name=t' || node.template_id ||
                                ' method=post action=cms.beheer>");');
                htp.prn('pop.document.write("<table border = 1><tr><td width=200><div align=center>' ||
                                node.omschrijving || '");');
                htp.prn('pop.document.write("<img src=' ||
                                web_functions.getimage(node.pic_path) || '></div>");');
                htp.prn('pop.document.write("</td><td><input type=hidden name=lid value=' || lid ||
                                '><input type=hidden name=mid value=' || mid || '>");');
                if (cid != 0) then
                    htp.prn('pop.document.write("<input type=hidden name=cid value=' || cid ||
                                    '>");');
                end if;
                htp.prn('pop.document.write("<input type=hidden name=soort value=' || vid ||
                                '><input type=hidden name=tid value=' || node.template_id ||
                                '>");');
                case node.template_id
                    when 1 then
                        htp.prn('pop.document.write("<input name=oms type=text>Tekst<br>");');
                    when 2 then
                        htp.prn('pop.document.write("<textarea name=oms type=textarea cols=50 rows=12>De te wijzigen tekst</textarea><br>");');
                        htp.prn('pop.document.write("<input name=pic_path type=text value=0>Plaatje(NI)<br>");');
                    when 3 then
                        htp.prn('pop.document.write("<input name=pic_path type=text value=0>Plaatje(NI)<br>");');
                    when 4 then
                        --naam~=link
                        htp.prn('pop.document.write("<textarea name=oms type=textarea cols=50 rows=12>De te wijzigen tekst</textarea><br>");');
                        htp.prn('pop.document.write("<input name=pic_path type=text value=0>Plaatje(NI)<br>");');
                        htp.prn('pop.document.write("<input name=naam type=text value=Link locatie><input type=button onclick=linken(t' || node.template_id ||')<br>");');
                    when 5 then
                        htp.prn('pop.document.write("<input name=oms type=text value=Naam van de kop>Kop tekst<br>");');
                    when 6 then
                        htp.prn('pop.document.write("<textarea name=oms type=textarea cols=50 rows=12>De te wijzigen tekst</textarea><br>");');
                    when 7 then
                        htp.prn('pop.document.write("<textarea name=oms type=textarea cols=50 rows=12>De te wijzigen tekst</textarea><br>");');
                        htp.prn('pop.document.write("<input name=naam type=text value=Link locatie>Link naar vervolg pagina(NI)<br>");');
                    else
                        null;
                    end case;
                htp.prn('pop.document.write("<input type=submit value=Toevoegen></td></tr></table></form><br>");');
            end loop;
        end;
        htp.prn('pop.document.close();
        }
        </script>');
    end;

popuplink:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    begin
        v_popstr := 'pop.document.write("';
        v_str    := v_popstr ||'<script language=javascript type=text/\\JavaScript>");';
        v_str := v_str || v_popstr || 'function linken(tid){");';
        v_str := v_str || v_popstr || 'var popp = window.open (\"\",\"selecteer_template\",\"toolbar=0,location=1,directories=0,status=1,menubar=0,scrollbars=1,resizable=0,copyhistory=0,width=850,height=600,left=10,top=100\");");';
        v_str := v_str || v_popstr || 'popp.document.open();");'; 
        v_str := v_str || v_popstr || 'popp.document.write(\"<html><body>\");");';
        v_str := v_str || v_popstr ||'popp.document.write(\"Klik op een van de onderstaande paginas om als link toe te voegen<p>\");");';
        begin
            for node in (select naam, menu_id, content_id
                                         from website_menu
                                        where content_id > 0) loop
            v_str := v_str || v_popstr ||'popp.document.write(\"<a href=\"#\" onclick=\"opener.document.forms[\''''+tid+''\''].elements[\''naam\''].value=\''psp2.main?mid=' ||node.menu_id || '\'';window.close();\">' || node.naam ||'</\a>\");");';  
            end loop;
        end; 
    v_str := v_str || v_popstr ||'popp.document.write(\"</\body></\html>\");");';
        v_str := v_str || v_popstr || 'popp.document.close();}</\script>");';
        htp.prn(v_str);
    end;

wie kan me verder helpen, want ik wordt hier niet wijzer van :(
ik heb het idee dat de fout in deze regel zit:
code:
1
v_str := v_str || v_popstr ||'popp.document.write(\"<a href=\"#\" onclick=\"opener.document.forms[\''''+tid+''\''].elements[\''naam\''].value=\''psp2.main?mid=' ||node.menu_id || '\'';window.close();\">' || node.naam ||'</\a>\");");';

maar ik kan niet vinden waar
als ik deze regel weglaat, krijg ik een popup te zien met de regel:
Klik op een van de onderstaande paginas om als link toe te voegen

[ Voor 41% gewijzigd door sturkel op 19-11-2003 15:51 ]

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 17-08 14:38
De fout heb ik kunnen verhelpen, dit is nu de code:
code:
1
v_str := v_str || v_popstr || 'popp.document.write(''<a href=\"#\" onclick=\"opener.document.forms[\\''\''+tid+\''\\''].elements[\\''naam\\''].value=\\''psp2.main?mid=' ||node.menu_id || '\\'';window.close();\">' || node.naam ||'</\a><br>'');");';

oude code
code:
1
v_str := v_str || v_popstr ||'popp.document.write(\"<a href=\"#\" onclick=\"opener.document.forms[\''''+tid+''\''].elements[\''naam\''].value=\''psp2.main?mid=' ||node.menu_id || '\'';window.close();\">' || node.naam ||'</\a>\");");';

Maar nu weer een volgend probleem.
de popup die hiermee gegenereerd wordt klopt niet.
er moet dus:
code:
1
<a href="#" onclick="opener.document.forms[\''+tid+'\']

komen te staan, maar er komt:
code:
1
<a href="#" onclick="opener.document.forms['[object HTMLFormElement]']

te staan.
Hoe kan ik dit verhelpen, want als alleen deze code test(in een html bestand) werkt het wel .
Zou dit kunnen liggen aan het feit dat er een popup gegenereerd wordt in een popup.
Zo ja? Hoe kan ik dit oplossen.

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 17-08 14:38
Oeps, slordig foutje, het form element was niet omringd met quotes.
Ik denken dat dit de fout was, maar nee hoor, het werkt nog steeds niet.
De link is nu dus in orde, maar het werkt nog steeds niet.

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 13:48

crisp

Devver

Pixelated

kwestie van goed kijken hoe de gegenereerde HTML eruit ziet, en of daar geen foutjes in zitten. Het zal waarschijnlijk wel een vergeten escape zijn ergens...

Intentionally left blank


  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 17-08 14:38
dit is de code, maar ik zie hier geen fout in, lijkt mij dat de syntax goed is:
code:
1
2
3
4
5
6
7
<html>
    <body>
        Klik op een van de onderstaande paginas om als link toe te voegen<p>
        <a href="#" onclick="opener.document.forms['t4'].elements['naam'].value='psp2.main?mid=0';window.close();">HOME</a><br>
        <a href="#" onclick="opener.document.forms['t4'].elements['naam'].value='psp2.main?mid=1';window.close();">Producten</a><br>
    </body>
</html>

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


Verwijderd

doe aan het einde van de onclick even een return false, want anders wordt de href geladen... (of is het return true?)
code:
1
2
3
4
5
6
7
<html>
    <body>
        Klik op een van de onderstaande paginas om als link toe te voegen<p>
        <a href="#" onclick="opener.document.forms['t4'].elements['naam'].value='psp2.main?mid=0';window.close();return false;">HOME</a><br>
        <a href="#" onclick="opener.document.forms['t4'].elements['naam'].value='psp2.main?mid=1';window.close();return false;">Producten</a><br>
    </body>
</html>

  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 17-08 14:38
Doekman>>ik heb dit geprobeerd maar het maakt niets uit.
Wat ik vreemd vind is het volgende:
pagina weergeeft popup(gaat goed)
in de popup pagina moet weer een popup weergeven worden, maar deze word geladen in het zelfde venster als de eerste popup.
ik denk zelf dat hier de fout zit, maar weet niet hoe ik dit op moet lossen.
het zou toch een nieuwe popup moeten worden als je de code bekijkt

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 13:48

crisp

Devver

Pixelated

de 2e parameter in window.open geeft een target aan; als dat een reeds bestaand window is (hijzelf bijvoorbeeld), dan wordt de pagina daarin geladen.

Intentionally left blank


  • sturkel
  • Registratie: Oktober 2001
  • Laatst online: 17-08 14:38
crisp schreef op 24 november 2003 @ 17:09:
de 2e parameter in window.open geeft een target aan; als dat een reeds bestaand window is (hijzelf bijvoorbeeld), dan wordt de pagina daarin geladen.
ontzettend bedankt, wat is lezen toch weer belangrijk

[ Voor 10% gewijzigd door sturkel op 24-11-2003 17:15 ]

[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]

Pagina: 1