Website werkt niet bij sommige mensen.

Status
Niet open voor verdere reacties.

jeroendenoot

Terugkerende gebruiker
Lid geworden
14 mrt 2005
Berichten
1.492
Ik heb een site gemaakt voor mijn vriend, maar bij hem werkt die site niet. Dit is de broncode van index.php:

Code:
<html>
<head>
<link rel="stylesheet" href="style.css">
<script language="JavaScript">
<!--

var itemafstand, vensterstaatop, timeout;
function iFrameHeight(nr) {
if(document.getElementById && !(document.all)) {
h = document.getElementById('inhoud').contentDocument.body.scrollHeight;
document.getElementById('inhoud').style.height = h;
}
else if(document.all) {
h = document.frames('inhoud').document.body.scrollHeight;
document.all.inhoud.style.height = h;
}
verplaatsvenster(nr);
}

//-->
</script>
</head>
<body>
<div class="verbergbanner">
</div>
<div class="logo">
<div class="midden">
<img src="titelgrootlinks.gif"><img src="logo.jpg" class="logo"><img src="titelgrootrechts.gif">
</div>
</div>
<div class="menu">
<div class="midden">
<table cellpadding="0" cellspacing="0" align="center"><tr class="titelklein">
<td background="titelachtergrondklein2.jpg"><img src="titelkleinlinks.gif"></td>
<script type="text/javascript">
<!--

var item1 = "Home::home.php";
var item2 = "Inhuren::inhuren.php";
var item3 = "Agenda::agenda.php";
var item4 = "Muziek::muziek.php";
var item5 = "Fun::fun.php";
var item6 = "Gastenboek::gastenboek.php"
var item7 = "Polls::polls.php";
var item8 = "Contact::contact.php";

var vensterverplaatst = false;
var teller = 1;
var aantalitems = 0;
var itemnr = "item" + teller;
while(eval("typeof(" + itemnr + ") != 'undefined'")) {
var itemnr = eval(itemnr);
var itemsplit = itemnr.split("::");
document.write('<td id="menuitem' + teller + '" class="menuitem"><a href="' + itemsplit[1] + '" target="inhoud" ><div onMouseOver="this.style.cursor=\'hand\'; document.getElementById(\'menuitem' + teller + '\').style.backgroundImage=\'url(titelachtergrondklein2.jpg)\';" onMouseOut="this.style.cursor=\'default\'; document.getElementById(\'menuitem' + teller + '\').style.backgroundImage=\'url(titelachtergrondklein1.jpg)\';">' + itemsplit[0] + '</div></a></td>');
aantalitems++;
teller++;
var itemnr = "item" + teller;
}

function verplaatsvenster(itemnummer){
afstand = (101 + (8 - aantalitems) * 50) + (itemnummer - 1) * 100;
document.getElementById("menuvenster").style.visibility = "visible";
if(vensterverplaatst){
schuifvenster(afstand);
} else {
vensterverplaatst = true;
document.getElementById("menuvenster").style.left = afstand + "px";
vensterstaatop = afstand;
}
}

//-->
</script>
<script>
<!--

function schuifvenster(itemafstand){
if(vensterstaatop != itemafstand){
if(vensterstaatop < itemafstand){
vensterstaatop++;
vensterstaatop++;
}
if(vensterstaatop > itemafstand){
vensterstaatop--;
vensterstaatop--;
}
document.getElementById("menuvenster").style.left = vensterstaatop + "px";
window.clearTimeout(timeout);
timeout = window.setTimeout("schuifvenster(" + itemafstand + ")", 1);
}
}

//-->
</script>
<td background="titelachtergrondklein2.jpg"><img src="titelkleinrechts.gif"></td>
</tr></table>
</div>
</div>
<div class="menuvenster" id="menuvenster">
</div>
<iframe scrolling="no" src="home.php" name="inhoud" frameborder="0" class="inhoud">
</iframe>
</body>
</html>

Vanuit een pagina in het iframe wordt iFrameHeight(nr) aangeroepen met:
parent.iFrameHeight(nr);
Weet iemand hoe het komt dat hij bij mij wel goed werkt en bij sommige mensen niet?
O, ja de site is nog niet klaar hoor!

En hier is de url: http://kevvan1.goldeye.info
 
Laatst bewerkt door een moderator:
Weet niemand het? Ik zal vast beginnen met een makkelijkere vraag: Bij wie wordt de site niet goed weergeven? En bij wie wordt de site goed weergeven? En wel met alles erop en eraan:
Als je op een menuitem klikt, komt de gekozen pagina in beeld en schuift er een rood vierkantje naar dat vakje toe. En natuurlijk moet die pagina dan ook weer goed worden weergeven.
 
Geen oplossing voor je maar even een screenshotje gemaakt.
Browser Firefox

attachment.php



Ook nog even de site door een 'validator' gehaald, misschien helpt je het op weg.
http://validator.w3.org/check?uri=http://kevvan1.goldeye.info/
 
Laatst bewerkt:
Ik heb een aantal errors eruit gehaald. Er staan er nog 10 in, maar die snap ik niet:

Below are the results of attempting to parse this document with an SGML parser.

Error Line 24 column 6: end tag for "HEAD" which is not finished.
</head>
Most likely, You nested tags and closed them in the wrong order. For example <p><em>...</p> is not acceptable, as <em> must be closed before <p>. Acceptable nesting is: <p><em>...</em></p>

Another possibility is that you used an element which requires a child element that you did not include. Hence the parent element is "not finished", not complete. For instance, <head> generally requires a <title>, lists (ul, ol, dl) require list items (li, or dt, dd), and so on.



Error Line 38 column 105: end tag for element "TD" which is not open.
...alt="" src="titelkleinlinks.gif"></td>');
The Validator found an end tag for the above element, but that element is not currently open. This is often caused by a leftover end tag from an element that was removed during editing, or by an implicitly closed element (if you have an error related to an element being used where it is not allowed, this is almost certainly the case). In the latter case this error will disappear as soon as you fix the original problem.

If this error occured in a script section of your document, you should probably read this FAQ entry.



Error Line 56 column 450: end tag for "SCRIPT" omitted, but its declaration does not permit this.
...n1.jpg)\';">' + itemsplit[0] + '</div></a></td>');
You forgot to close a tag, or
you used something inside this tag that was not allowed, and the validator is complaining that the tag should be closed before such content can be allowed.
The next message, "start tag was here" points to the particular instance of the tag in question); the positional indicator points to where the validator expected you to close the tag.



Info Line 35 column 0: start tag was here.
<script type="text/javascript">
Error Line 56 column 454: end tag for element "A" which is not open.
...pg)\';">' + itemsplit[0] + '</div></a></td>');


Error Line 56 column 459: end tag for element "TD" which is not open.
...;">' + itemsplit[0] + '</div></a></td>');


Error Line 90 column 78: document type does not allow element "TD" here.
...ge: url(titelachtergrondklein2.jpg);"><img alt="" src="titelkleinrechts.gif">
The element named above was found in a context where it is not allowed. This could mean that you have incorrectly nested elements -- such as a "style" element in the "body" section instead of inside "head" -- or two elements that overlap (which is not allowed).

One common cause for this error is the use of XHTML syntax in HTML documents. Due to HTML's rules of implicitly closed elements, this error can create cascading effects. For instance, using XHTML's "self-closing" tags for "meta" and "link" in the "head" section of a HTML document may cause the parser to infer the end of the "head" section and the beginning of the "body" section (where "link" and "meta" are not allowed; hence the reported error).



Error Line 91 column 4: end tag for element "TR" which is not open.
</tr></table>');


Error Line 91 column 12: end tag for element "TABLE" which is not open.
</tr></table>');


Error Line 94 column 8: end tag for element "SCRIPT" which is not open.
</script>


Error Line 96 column 5: end tag for element "DIV" which is not open.
</div>


En dit is de huidige broncode:

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" href="style.css">
<script type="text/javascript">
<!--

var itemafstand, vensterstaatop, timeout;
function iFrameHeight(nr) {
if(document.getElementById && !(document.all)) {
h = document.getElementById('inhoud').contentDocument.body.scrollHeight;
document.getElementById('inhoud').style.height = h;
}
else if(document.all) {
h = document.frames('inhoud').document.body.scrollHeight;
document.all.inhoud.style.height = h;
}
verplaatsvenster(nr);
}

//-->
</script>
</head>
<body>
<div class="verbergbanner">
</div>
<div class="logo">
<div class="midden">
<img alt="" src="titelgrootlinks.gif"><img alt="Disco Summer Logo" src="logo.jpg" class="logo"><img alt="" src="titelgrootrechts.gif">
</div>
</div>
<div class="menu">
<div class="midden">
<script type="text/javascript">
<!--
document.write('<table cellpadding="0" cellspacing="0" align="center"><tr class="titelklein">
<td style="background-image: url(titelachtergrondklein2.jpg);"><img alt="" src="titelkleinlinks.gif"></td>');

var item1 = "Home::home.php";
var item2 = "Inhuren::inhuren.php";
var item3 = "Agenda::agenda.php";
var item4 = "Muziek::muziek.php";
var item5 = "Fun::fun.php";
var item6 = "Gastenboek::gastenboek.php"
var item7 = "Polls::polls.php";
var item8 = "Contact::contact.php";

var vensterverplaatst = false;
var teller = 1;
var aantalitems = 0;
var itemnr = "item" + teller;
while(eval("typeof(" + itemnr + ") != 'undefined'")) {
var itemnr = eval(itemnr);
var itemsplit = itemnr.split("::");
document.write('<td id="menuitem' + teller + '" class="menuitem"><a href="' + itemsplit[1] + '" target="inhoud"><div onMouseOver="this.style.cursor=\'hand\'; document.getElementById(\'menuitem' + teller + '\').style.backgroundImage=\'url(titelachtergrondklein2.jpg)\';" onMouseOut="this.style.cursor=\'default\'; document.getElementById(\'menuitem' + teller + '\').style.backgroundImage=\'url(titelachtergrondklein1.jpg)\';">' + itemsplit[0] + '</div></a></td>');
aantalitems++;
teller++;
var itemnr = "item" + teller;
}

function verplaatsvenster(itemnummer){
afstand = (97 + (8 - aantalitems) * 50) + (itemnummer - 1) * 100;
document.getElementById("menuvenster").style.visibility = "visible";
if(vensterverplaatst){
schuifvenster(afstand);
} else {
vensterverplaatst = true;
document.getElementById("menuvenster").style.left = afstand + "px";
vensterstaatop = afstand;
}
}

function schuifvenster(itemafstand){
if(vensterstaatop != itemafstand){
if(vensterstaatop < itemafstand){
vensterstaatop++;
vensterstaatop++;
}
if(vensterstaatop > itemafstand){
vensterstaatop--
vensterstaatop--
}
document.getElementById("menuvenster").style.left = vensterstaatop + "px";
window.clearTimeout(timeout);
timeout = window.setTimeout("schuifvenster(" + itemafstand + ")", 1);
}
}

document.write('<td style="background-image: url(titelachtergrondklein2.jpg);"><img alt="" src="titelkleinrechts.gif"></td>
</tr></table>');

//-->
</script>
</div>
</div>
<div class="menuvenster" id="menuvenster">
</div>
<iframe scrolling="no" src="home.php" name="inhoud" frameborder="0" class="inhoud">
</iframe>
</body>
</html>
 
Je kunt beter voorang geven aan document.getElementById

if (document.getElementById) {
........
} else if(document.all) {
........
};

nu gebruikt het nog document.all als dat bestaat.

En document.all is een 'genaamde' array, dat gebruik je niet als document.all.inhoud.eigenschap maar als document.all['inhoud'].eigenschap


Ik kijk er later nog even beter naar :)


Vr.Gr. Egel.
 
Laatst bewerkt:
Hé, bedankt. Ik heb dat stukje (In ieder geval, ik denk dat je dat bedoelt) aangepast naar dit:
Code:
<script type="text/javascript">
<!--

var itemafstand, vensterstaatop, timeout;
function iFrameHeight(nr) {
if (document.getElementById) {
h = document.getElementById('inhoud').contentDocument.body.scrollHeight;
document.getElementById('inhoud').style.height = h;
}
} else if(document.all) {
h = document.frames('inhoud').document.body.scrollHeight;
document.all.['inhoud'].style.height = h;
}
verplaatsvenster(nr);
}

//-->
</script>
Ik denk dat het zo goed is hè?
 
Ja, op 1 } na. De else moet meteen na de eerste }

Volgens mij kan het korter. Het gaat er toch om de hoogte van het iframe aan te passen aan de hoogte van de pagina die erin komt?

Code:
function iFrameHeight(nr) {
 inhoud.style.height = (inhoud.contentDocument ? inhoud.contentDocument.body.scrollHeight : inhoud.document.body.scrollHeight);
 verplaatsvenster(nr);
 };

~/~

document.write('<td id="menuitem' + teller + '" class="menuitem"><a href="' + itemsplit[1] + '" target="inhoud"><div style="cursor: hand;" onmouseover="this.style.backgroundImage=\'titelachtergrondklein2.jpg\'" onmouseout="this.style.backgroundImage=\'titelachtergrondklein1.jpg\'">' + itemsplit[0] + '</div></a></td>');
De 1e code gebruikt de verkorte versie van if else:
function vergelijk(a,b) {
return (a == b ? 'gelijk' : 'ongelijk');
};


Bij de 2e code:
- de style="cursor: hand" werkt al zoals onmouseover/out
- bij het wisselen van de achtergrond met onmouseover/out kun je this.style.backgroundImage gebruiken, en url() heb je alleen nodig bij als je background ipv backgroundImage gebruikt


Vr.Gr. Egel.
 
Oké, bedankt. Maar hij geeft deze foutmelding:
'inhoud.style' is geen of leeg object.
 
Geplaatst door jeroendenoot
Oké, bedankt. Maar hij geeft deze foutmelding:
'inhoud.style' is geen of leeg object.
Waarschijnlijk lost

<iframe scrolling="no" src="home.php" name="inhoud" frameborder="0" class="inhoud" style="height: 240px">

het op. Dan bestaat de inhoud.style.height


Vr.Gr. Egel.
 
Inderdaad. Volgens mij kan de waarde van het style attribuut ook leeggelaten worden. Dan werkt het ook. Ik zal eens vragen aan degene voor wie ik de site maak, of de site nu wel goed wordt weergeven bij hem. Als dat niet zo is laat ik het nog wel weten.
 
Ok! Maar ik denk dat je het opgelost hebt door getElementById te gebruiken. :)
Dat schijnt ook te moeten, de oplossing die ik eerder gaf werkt bij mijzelf niet :o, onderstaande wel.
Code:
function iFrameHeight(nr) {
 if (document.getElementById && !document.all) {
  document.getElementById('inhoud').style.height = inhoud.contentDocument.body.scrollHeight;
  } else if(document.all) {
  document.all['inhoud'].style.height = inhoud.document.body.scrollHeight;
  };
 // verplaatsvenster(nr); // <-- ff uitgezet, test makkelijker
 };
Waarschijnlijk is het && !document.all gedeelte ervoor om bij mozilla contentDocument.scrollHeight ipv document.scrollHeight te gebruiken.
Ik kijk later nog een keertje bij Fx hoe het daar werkt.


Grtz, Egel.
 
Oké, thanks. Dan ga ik het (ik denk vandaag) laten uitproberen.
 
Hij zei dat het nog steeds hetzelfde eruit ziet als vorige keer. Dus het is nog niet opgelost...
 
Ik weet niet of je hier vrolijk van gaat worden :confused:

Soms krijg ik beeld zoals in de bijlage, na een aantal malen 'refreshen' wordt het 'witte stuk' ook netjes geel, de tekst achter de menubalk blijft wel zichtbaar.

attachment.php
 
Laatst bewerkt:
Daar word ik inderdaad niet echt vrolijk van. Maar volgens mij ligt dit probleem aan de server. Ik krijg soms ook gewoon de pagina van Google i.p.v. de bedoelde pagina. Maar is er een oplossing om het probleem op te lossen?
 
Code:
</script>
<!--
</head>

de middelste lijn weghalen misschien?

Gr. Egel.
 
Die had ik er neergezet om de reclamebalk te blokkeren:D. En het werkt.
 
Geplaatst door jeroendenoot
Daar word ik inderdaad niet echt vrolijk van. Maar volgens mij ligt dit probleem aan de server. Ik krijg soms ook gewoon de pagina van Google i.p.v. de bedoelde pagina. Maar is er een oplossing om het probleem op te lossen?
Ga ervanuit dat dit echt niet aan de server ligt, gezien het op duizenden (miljoenen ?) andere website prima werkt :)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan