Toon posts:

getElementById werkt niet met focus()

Pagina: 1
Acties:
  • 71 views sinds 30-01-2008

Verwijderd

Topicstarter
Weet iemand waarom het volgende niet werkt:

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
<script language="Javascript">
    var actieve_element;
    function verkrijgElement(id)
    {
        if (document.getElementById)
        {
            var elmt = document.getElementById(id);
        } else if (document.all) {
            var elmt = document.all[id];
        }
        return elmt;    
    }
    
    function document.onreadystatechange()
        {
        //document.getelementbyid(actieve_element).
        edit1.document.designMode="On";
        edit2.document.designMode="On";
        edit3.document.designMode="On";
        }
    
    function cmdExec(cmd,opt)
    {
        var objElement = new verkrijgElement(actieve_element);
        objElement.focus();
        objElement.document.execCommand(cmd,"",opt);
        objElement.focus();
    }
</script>


en het volgende wel:

code:
1
2
3
4
5
6
7
                function cmdExec(cmd,opt)
    {
        var objElement = new verkrijgElement(actieve_element);
        edit1.focus();
        edit1.document.execCommand(cmd,"",opt);
        edit1.focus();
                }


het heeft allemaal betrekking op:

code:
1
2
3
4
5
6
7
8
9
</head>
<body>
<input type="button" name="bold" value="bold" onClick="javascript:cmdExec('bold')"><br>
<iframe width="200" name="edit1" height="100" border="1" onactivate="javascript:actieve_element=this.name;"></iframe><br>
<iframe width="200" name="edit2" height="100" border="1" onactivate="javascript:actieve_element=this.name;"></iframe><br>
<iframe width="200" name="edit3" height="100" border="1" onactivate="javascript:actieve_element=this.name;"></iframe>
<!--<input type=text name="active_element">-->
</body>
</html>

[ Voor 32% gewijzigd door Verwijderd op 19-09-2003 00:57 ]


  • guanpedro
  • Registratie: Maart 2002
  • Laatst online: 18-12-2025

guanpedro

Live forever or die trying

Verwijderd schreef op 19 september 2003 @ 00:37:
code:
1
2
3
4
5
6
7
    function cmdExec(cmd,opt)
    {
        var objElement = new verkrijgElement(active_element);
        objElement.focus();
        objElementdocument.execCommand(cmd,"",opt);
        objElement.focus();
    }
objElementdocument.execCommand(cmd,"",opt);

moet toch zijn:

objElement.document.execCommand(cmd,"",opt);

PC: MSI-NEO2FISR P4-2.6HT@2.8 Dual-channel GEIL-PC3500 Intel CSA GB-LAN 9600PRO Pioneer DVR106 Server: Dual Xeon-2GHz 3Ware 7500-12 11x120GB RAID5 GB-LAN RH 9 2.4.22 Digicam: Sony DSC-F717


Verwijderd

Topicstarter
Ja, okee, dat had ik ja, maar dat had ik verkeerd overgetypt :-)
guanpedro schreef op 19 September 2003 @ 00:41:
[...]


objElementdocument.execCommand(cmd,"",opt);

moet toch zijn:

objElement.document.execCommand(cmd,"",opt);

  • Remy
  • Registratie: Februari 2002
  • Laatst online: 15-08 09:43

Remy

I usually get 100% accuracy

FF move over de schutting naar W&G, en Sanderrr, zou je deze even door willen nemen?

P&W FAQ - De "quickstart"
P&W FAQ - HTML / javascript /css, etc...
P&W FAQ - Het FAQ/Beleid topic

Lees ze :)

LinkedIn
Instagram


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

waarom beschouw je je functie verkrijgElement (brrr, nederlandse namen als functies) als een object, en roep je het niet gewoon als een functie aan?

nog wat dingen:
- in een eventhandler hoef je geen javascript: te gebruiken
- name != id
- actieve_element != active_element

en designmode werkt toch niet in IE4, dus ik begrijp sowieso niet waarom je dan toch een backwards compatible functie voor die stokoude browser inbouwt

[ Voor 51% gewijzigd door crisp op 19-09-2003 00:49 ]

Intentionally left blank


  • guanpedro
  • Registratie: Maart 2002
  • Laatst online: 18-12-2025

guanpedro

Live forever or die trying

en:

var objElement = new verkrijgElement(active_element);
var actieve_element;

Vertaalfoutjes?

PC: MSI-NEO2FISR P4-2.6HT@2.8 Dual-channel GEIL-PC3500 Intel CSA GB-LAN 9600PRO Pioneer DVR106 Server: Dual Xeon-2GHz 3Ware 7500-12 11x120GB RAID5 GB-LAN RH 9 2.4.22 Digicam: Sony DSC-F717


Verwijderd

Topicstarter
guanpedro schreef op 19 september 2003 @ 00:49:
en:

var objElement = new verkrijgElement(active_element);
var actieve_element;

Vertaalfoutjes?
heel scherp, maar dat is gewoon slordig gepost...
maar wat de fout is, als deze schrijffouten eruit zijn, is dat de focus naar het hoofddocument worden gezet en niet naar een iframe

  • guanpedro
  • Registratie: Maart 2002
  • Laatst online: 18-12-2025

guanpedro

Live forever or die trying

Voila:

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
<html>
<head>
<script language="Javascript">
    var actieve_element;
    
    function verkrijgElement(id)
    {
        if (document.getElementById)
        {
            var elmt = document.getElementById(id);
        } else if (document.all) {
            var elmt = document.all[id];
        }
        return elmt;    
    }
    
    
    function document.onreadystatechange()
    {
        edit1.document.designMode="On";
        edit2.document.designMode="On";
        edit3.document.designMode="On";
        }

    function cmdExec(cmd,opt)
    {
        var objElement = verkrijgElement(actieve_element);
        objElement.focus();
        objElement.document.execCommand(cmd,"",opt);
        objElement.focus();
    }

</script>
</head>
<body>
<input type="button" name="bold" value="bold" onClick="javascript:cmdExec('bold')"><br>
<iframe width="200" id="edit1" height="100" border="1" onactivate="javascript:actieve_element=this.id;"></iframe><br>
<iframe width="200" id="edit2" height="100" border="1" onactivate="javascript:actieve_element=this.id;"></iframe><br>
<iframe width="200" id="edit3" height="100" border="1" onactivate="javascript:actieve_element=this.id;"></iframe>
<!--<input type=text name="active_element">-->
</body>
</html>


Let op, getelementbyid werkt op een ID niet een naam, dus in je Iframe ID's gebruiken. Verder alleen wat taalfouten en tikfouten.

Gebruikt bijv. 'alert(id);' om te kijken waar het mis gaat.

PC: MSI-NEO2FISR P4-2.6HT@2.8 Dual-channel GEIL-PC3500 Intel CSA GB-LAN 9600PRO Pioneer DVR106 Server: Dual Xeon-2GHz 3Ware 7500-12 11x120GB RAID5 GB-LAN RH 9 2.4.22 Digicam: Sony DSC-F717


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Verwijderd schreef op 19 September 2003 @ 00:53:
[...]
heel scherp, maar dat is gewoon slordig gepost...
Je bedoelt dat je het regel voor regel hebt overgetypt? :?

Zeggen de keyboard shortcuts Ctrl-A, Ctrl-C en Ctrl-V je iets?

Professionele website nodig?


  • guanpedro
  • Registratie: Maart 2002
  • Laatst online: 18-12-2025

guanpedro

Live forever or die trying

Code slordig posten maakt het nogal lastig om te zien waar het probleem zit.

PC: MSI-NEO2FISR P4-2.6HT@2.8 Dual-channel GEIL-PC3500 Intel CSA GB-LAN 9600PRO Pioneer DVR106 Server: Dual Xeon-2GHz 3Ware 7500-12 11x120GB RAID5 GB-LAN RH 9 2.4.22 Digicam: Sony DSC-F717


Verwijderd

code:
1
2
en designmode werkt toch niet in IE4, dus ik begrijp sowieso niet 
waarom je dan toch een backwards compatible functie voor die stokoude browser inbouwt

Uhmm. het werkt wel in IE4. Niet dat het uitmaakt, maar goed. :)

Verwijderd

Topicstarter
guanpedro schreef op 19 September 2003 @ 00:56:
Code slordig posten maakt het nogal lastig om te zien waar het probleem zit.
Ja, snappik... nu klopt 'ie

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op 19 September 2003 @ 00:56:
code:
1
2
en designmode werkt toch niet in IE4, dus ik begrijp sowieso niet 
waarom je dan toch een backwards compatible functie voor die stokoude browser inbouwt

Uhmm. het werkt wel in IE4. Niet dat het uitmaakt, maar goed. :)
whatever, leuk dat MS dat toen al bedacht had; echter komen de fouten voort uit typefouten en het niet begrijpen van de javascript semantiek. Debuggen wordt beschouwd als basic kennis, dus dit topic gaat op slot :)

Intentionally left blank

Pagina: 1

Dit topic is gesloten.