[javascript] object expected, frame te ver weg?

Pagina: 1
Acties:

  • cyspoz
  • Registratie: September 2001
  • Laatst online: 15-07 08:00

cyspoz

Relaxed, het zijn maar 1 en 0

Topicstarter
Ik ben momteel met een website bezig waarin twee stukken javascript worden gebruikt. De één is om plaatjes te laten veranderen zodra de muis er overheen gaat. De ander om ervoor te zorgen dat twee frames tegelijkertijd worden geladen bij een snelkoppeling. Alleen die tweede wil niet werken. En ik snap niet waarom. Ik heb ze al een keer los van elkaar geprobeerd maar dat maakt niets uit. Ik heb zelf het vermoeden dat het script het juiste frame niet kan vinden. Alleen hoe kan ik hier wel voor zorgen. De code van de frame pagina is als volgt:

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
<html>
<head>
<title>Nikita Drive-in & Disco Shows</title>
</head>
<frameset cols="50%,800,50%" border="0" frameborder="0" framespacing="0">
    <frame name="left_fill" noresize scrolling="no" src="fill/fill.html" target="_self">
    <frameset rows="85,15,*,15">
        <frameset cols="144,656">
            <frame name="loc" noresize scrolling="no" src="loc/loc_home.html" target="_self">
            <frame name="top" noresize scrolling="no" src="top/top.html" target="_self">
        </frameset>
        <frame name="menu" noresize scrolling="no" src="menu/menu.html" target="main">
        <frameset cols="10,*,10">
            <frameset rows="10,*,10">
                <frame name="lt" noresize scrolling="no" src="fill/lt.html" target="_self">
                <frame name="lm" noresize scrolling="no" src="fill/lm.html" target="_self">
                <frame name="ld" noresize scrolling="no" src="fill/ld.html" target="_self">
          </frameset>       
            <frameset rows="10,*,10">
                <frame name="mt" noresize scrolling="no" src="fill/mt.html" target="_self">
                <frame name="main" noresize scrolling="no" src="home/home.html" target="_self">
                <frame name="md" noresize scrolling="no" src="fill/md.html" target="_self">
          </frameset>       
            <frameset rows="10,*,10">
                <frame name="rt" noresize scrolling="no" src="fill/rt.html" target="_self">
                <frame name="rm" noresize scrolling="no" src="fill/rm.html" target="_self">
                <frame name="rd" noresize scrolling="no" src="fill/rd.html" target="_self">
          </frameset>       
        </frameset>  
        <frame name="menu_down" noresize scrolling="no" src="fill/fill.html" target="_blank">
    </frameset>
    <frame name="right_fill" noresize scrolling="no" src="fill/fill.html" target="_self">
<noframes>      
<body>
<p>This page uses frames, but your browser doesn't support them.</p>
</body>
</noframes>
</frameset>
</html>


de code van de pagine menu waarin het probleem zich voortdoet is als volgt:

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
<html>
<head>
<title>Menu</title>
<base target="main">
<script type="text/javascript">
function init() {
  if (!document.getElementById) return
  var imgOriginSrc;
  var imgTemp = new Array();
  var imgarr = document.getElementsByTagName('img');
  for (var i = 0; i < imgarr.length; i++) {
    if (imgarr[i].getAttribute('hsrc')) {
        imgTemp[i] = new Image();
        imgTemp[i].src = imgarr[i].getAttribute('hsrc');
        imgarr[i].onmouseover = function() {
            imgOriginSrc = this.getAttribute('src');
            this.setAttribute('src',this.getAttribute('hsrc'))
        }
        imgarr[i].onmouseout = function() {
            this.setAttribute('src',imgOriginSrc)
        }
    }
  }
}
onload=init;
</script>
<script language="javascript">
<!-- Hiding
function MultiLoad2(doc1,doc2) {
  parent.loc.location.href=doc1;
  parent.main.location.href=doc2;
}
// -->
</script>

</head>
<body topmargin="0" leftmargin="0" background="menu.png">
<p align="center">
<a href="javascript:MultiLoad2('../home/home.html', '../loc/loc_home.html')">[img]"menu_home1.png"[/img]</a>
<a href="info.html">[img]"menu_info1.png"[/img]</a>
<a href="prijzen.html">[img]"menu_prijzen1.png"[/img]</a>
<a href="foto.html">[img]"menu_foto1.png"[/img]</a>
<a href="playlist.html">[img]"menu_playlist1.png"[/img]</a>
<a href="muzieksystemen.html">[img]"menu_muzieksystemen1.png"[/img]</a>
<a href="mail.html">[img]"menu_mail1.png"[/img]</a>
</p>
</body>
</html>


De codes komen van voorbeeld pagina's af. Na meerdere malen controleren heb ik nog geen fout kunnen vinden. Internet Explorer zegt het volgende:

code:
1
2
3
4
5
LINE: 1
CHAR: 1
ERROR: Object expected
CODE: 0
URL: file://I:\\website\def\home\home.html


Ik geef toe, dat het niet echt een goed manier van debuggen is, maar heb zo 1 2 3 niets anders. Heeft iemand een idee. Zoeken heb ik geprobeerd, maar foutmelding is te algemeen en zelf weet ik niet goed waar het probleem zit en hoe duidelijk te omschrijven. Iemand misschien een idee?

Alvast bedankt.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:02

crisp

Devver

Pixelated

Ik heb ten eerste nog nooit gehoord van een target attribuut in een frame-tag; ten tweede vind ik de mouseover imageswitch met een niet-bestaand attribuut hsrc behoorlijk ranzig (levert in ieder geval geen geldige HTML op - in een array zetten en preloaden is veel handiger), en ten derde is je <base target="main"> in dit geval de boosdoener: de href wordt namelijk naar het main-frame gestuurd waar natuurlijk de functie MultiLoad2 niet bekend is.
Probeer het eens zo:

HTML:
1
<a href="../home/home.html" onclick="MultiLoad2('../home/home.html', '../loc/loc_home.html');return false">...


tipje: http://validator.w3.org

[ Voor 13% gewijzigd door crisp op 16-07-2003 23:41 ]

Intentionally left blank


  • cyspoz
  • Registratie: September 2001
  • Laatst online: 15-07 08:00

cyspoz

Relaxed, het zijn maar 1 en 0

Topicstarter
crisp schreef op 16 July 2003 @ 23:34:
Ik heb ten eerste nog nooit gehoord van een target attribuut in een frame-tag; ten tweede vind ik de mouseover imageswitch met een niet-bestaand attribuut hsrc behoorlijk ranzig, en ten derde is je <base target="main"> in dit geval de boosdoener: de href wordt namelijk naar het main-frame gestuurd waar natuurlijk de functie MultiLoad2 niet bekend is.
Probeer het eens zo:

HTML:
1
<a href="../home/home.html" onclick="MultiLoad2('../home/home.html', '../loc/loc_home.html');return false">...

Reactie op je eerste punt: Jah dat is inderdaad een beetje vaag. Snap zelf ook niet waarom ik die daar neer heb gezet. Heb hem in iedergeval maar meteen weggehaald.

Reactie op je tweede punt: Dat hsrc wordt gedefineerd in het javascript. Het is misschien niet erg ortodox, maar het werkt wel goed. Dus om dat nou meteen ranzig te noemen, is misschien wat overdreven. Maar er zit wel wat in.

Reactie op je derde punt: Dat was inderdaad het probleem. Begrijp nu ook de error van IE. Thanx en probeer in het vervolg iets aardiger te antwoorden. Was misschien niet zo }) bedoelt. Maar komt misschien zo wel over. Ik weet ook wel dat ik misschien een leek ben voor jou. Maar ik doe uiteindelijk ook mijn best.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:02

crisp

Devver

Pixelated

cyspoz schreef op 16 July 2003 @ 23:53:
[...]
Thanx en probeer in het vervolg iets aardiger te antwoorden. Was misschien niet zo }) bedoelt. Maar komt misschien zo wel over. Ik weet ook wel dat ik misschien een leek ben voor jou. Maar ik doe uiteindelijk ook mijn best.
Als ik zo over kom dan zullen we maar zeggen dat het door de warmte komt dat ik kortaf reageerde ;)
Je hebt zichtbaar moeite gedaan je probleem te omschrijven, dus was ik ook genegen hier antwoord op te geven hoewel dit inderdaad in mijn ogen een simpel probleem is.
Daarnaast krijg ik gewoon kriebels als ik invalide HTML zie terwijl er betere oplossingen voorhanden zijn. Maar dat zal je zelf mettertijd wel ondervinden; laat je door mij absoluut niet tegenhouden! :)

Intentionally left blank


  • cyspoz
  • Registratie: September 2001
  • Laatst online: 15-07 08:00

cyspoz

Relaxed, het zijn maar 1 en 0

Topicstarter
crisp schreef op 17 July 2003 @ 00:12:
[...]

Als ik zo over kom dan zullen we maar zeggen dat het door de warmte komt dat ik kortaf reageerde ;)
Je hebt zichtbaar moeite gedaan je probleem te omschrijven, dus was ik ook genegen hier antwoord op te geven hoewel dit inderdaad in mijn ogen een simpel probleem is.
Daarnaast krijg ik gewoon kriebels als ik invalide HTML zie terwijl er betere oplossingen voorhanden zijn. Maar dat zal je zelf mettertijd wel ondervinden; laat je door mij absoluut niet tegenhouden! :)
Daarom, zij ik ook al dat het misschien niet zo bedoeld was. Ik heb gelukkig hier airco. Ik snap goed dat invalide html er niet fijn uitziet en dat voor jou soms dingen erg simpel lijken en het voor jou dan zelfs moeilijk is om te snappen dat andere dat niet snapen :P Maar helaas zijn niet alle mensen zo ver als jij. In iedergeval bedankt. :)