site opbouwen

Status
Niet open voor verdere reacties.

MegaByter

Terugkerende gebruiker
Lid geworden
11 okt 2009
Berichten
1.497
ik weet niet wat het is maar het lijkt erop dat ik het bouwen van een site steeds meer begint af te leren.
niet goed word ik ervan...

Enfin..

ik ben nu even bezig met het opbouw van een nieuwe site voor een speel o theek.
de site gaat zoveel menu items bevatten dat ik de site wel moet opbouwen in iframes.
anders word het bewerken van het menu gewoon niet leuk meer. dit moet gewoon in 1x kunnen gebeuren.
en daarbij wil ik een cms systeem gaan maken... hoe simpel de site is des te beter.
De index site mag best wat scripts bevatten maar de andere paginas zo min mogelijk.
alleen de code van het cms systeem dan...
Mijn bedoeling was om de iframe vanzelf aan te laten passen aan de grote van de pagina.
op 1 of andere manier faalt de iframe daarin...
het is namelijk niet de bedoeling dat de iframe een scrollbar vertoond.
de enige scrollbar die gezien mag worden is de scrollbar van de browser zelf.

dit is de code voor tussen de heads:
HTML:
<script type="text/javascript">

/***********************************************
* IFrame SSI script II- � Dynamic Drive DHTML code library (http://www.dynamicdrive.com)
* Visit DynamicDrive.com for hundreds of original DHTML scripts
* This notice must stay intact for legal use
***********************************************/

//Input the IDs of the IFRAMES you wish to dynamically resize to match its content height:
//Separate each ID with a comma. Examples: ["myframe1", "myframe2"] or ["myframe"] or [] for none:
var iframeids=["myframe"]

//Should script hide iframe from browsers that don't support this script (non IE5+/NS6+ browsers. Recommended):
var iframehide="yes"

var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
var FFextraHeight=parseFloat(getFFVersion)>=0.1? 16 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers

function resizeCaller() {
var dyniframe=new Array()
for (i=0; i<iframeids.length; i++){
if (document.getElementById)
resizeIframe(iframeids[i])
//reveal iframe for lower end browsers? (see var above):
if ((document.all || document.getElementById) && iframehide=="no"){
var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])
tempobj.style.display="block"
}
}
}

function resizeIframe(frameid){
var currentfr=document.getElementById(frameid)
if (currentfr && !window.opera){
currentfr.style.display="block"
if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax
currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight; 
else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
currentfr.height = currentfr.Document.body.scrollHeight;
if (currentfr.addEventListener)
currentfr.addEventListener("load", readjustIframe, false)
else if (currentfr.attachEvent){
currentfr.detachEvent("onload", readjustIframe) // Bug fix line
currentfr.attachEvent("onload", readjustIframe)
}
}
}

function readjustIframe(loadevt) {
var crossevt=(window.event)? event : loadevt
var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement
if (iframeroot)
resizeIframe(iframeroot.id);
}

function loadintoIframe(iframeid, url){
if (document.getElementById)
document.getElementById(iframeid).src=url
}

if (window.addEventListener)
window.addEventListener("load", resizeCaller, false)
else if (window.attachEvent)
window.attachEvent("onload", resizeCaller)
else
window.onload=resizeCaller

</script>

dit is de code voor de iframe:
HTML:
<iframe id="myframe" src="site_components/home.html" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0" style="overflow:visible; width:100%; display:none"></iframe>

kan iemand mij misschien vertellen wat ik fout doen?
 
Laatst bewerkt:
Hoi MegaByter,
Of jij iets fout hebt gedaan weet ik niet, maar ik heb even de bron bij Dynamic Drive bezichtigd, en het script blijkt ruim 5 jaar geleden z'n laatste update gehad te hebben.
Alleen, waarom zou je een <iframe> gebruiken met zo'n resize-script erbij?
de site gaat zoveel menu items bevatten dat ik de site wel moet opbouwen in iframes.
anders word het bewerken van het menu gewoon niet leuk meer. dit moet gewoon in 1x kunnen gebeuren.

Als dat het is, waarom dan niet fluks overgestapt op php?
Dan zet je het menu in 1 bestandje, dat voor alle pagina's geldt.
Elke pagina ziet er dan zó uit:
HTML:
...
</head>
<body>
    1 regeltje php om het menu aan te haken :)
    en verder de inhoud van die pagina
</body>
</html>

Helemaal geen iframe en script nodig, de server timmert steeds op elke pagina hetzelfde menu erin, in plaats van dat jij moet kopiëren en plakken (en veranderen!). Formaat van het menu is geen probleem. Mocht het menu groeien, dan groeit de pagina gewoon mee (want het php-fragment zit gewoon in de pagina die de browser ontvangt).

Naar wens kan je ook allerlei andere zich herhalende elementen van de pagina met 1 regeltje php er in zetten (header, footer, of zelfs ook het riedeltje <meta>'s en css-links die in de <head> staan, enz. *)
Zo simpel als wat, en er blijven puur cleane html-pagina's over.
Is dat niet aanlokkelijk?

Met vriendelijke groet,
CSShunter
____________
*)
Zo zit bv. deze site in elkaar: elke pagina heeft alleen een ander middenblok, de hele rest wordt er met php omheen gedrapeerd. Zie het php-raamwerk van een pagina: meer zit er gewoon niet in! :d
 
nadeel van php is dat je het niet even binnen 1 dag leert wil je het uit de praktijk leren.
daarnaast bestaan er geen viewers voor php zoals html wel heeft bijv share point designer.

als ik wilde overstappen op php dan was ik wel in het php forum gaan zitten...

maar je kan een php pagina toch niet in een html pagina include?
 
Laatst bewerkt:
ik ben er al achtergekomen waar het probleem ligt.

Het gaat om de volgende tags die er niet tussen moeten bij de iframe:
Code:
style="overflow:visible;
en
Code:
display:none"

deze zorgen ervoor dat de browser de iframes niet ziet...
en dat veroorzaakt problemen jah...

hoewel ik niet weet wat overflow nou doet :S
 
nadeel van php is dat je het niet even binnen 1 dag leert wil je het uit de praktijk leren.
Klopt, maar voor wat CSShunter bedoelt heb je alleen maar dit regeltje nodig.
Code:
<?php include("naamvanhetbestand.html"); ?>
Redelijk simpel om te onthouden dus en je hoeft geen frames meer te gebruiken. Afgezien van de problemen waar jij tegenaan liep zitten daar namelijk nog wel meer haken en ogen aan. Zo wordt inhoud die in een frame staat door google en consorten straal over het hoofd gezien. Erg slecht voor de SEO en voor de online vindbaarheid van die speelotheek.

als ik wilde overstappen op php dan was ik wel in het php forum gaan zitten...
maar je kan een php pagina toch niet in een html pagina include?
Het bestand waar de inlude in staat moet eindigen op .php, zodat de server weet dat daar php code te vinden is. De overige bestanden, voor menu, header etc. mogen gewoon .html bestanden zijn. Je moet er dan wel even op letten dat in die bestanden alleen de html voor, bijvoorbeeld, het menu staat, en niet ook zaken als <html> en <head> anders krijg je die elementen uiteindelijk meerdere keren in je door php verwerkte bestand en dat gaat niet goed.

OVerigens, als ik iemand zou betalen om een site voor me te bouwen en diegene zou de site met frames opbouwen dan zou ik subiet m'n geld terugvragen.

EDIT: Met overflow kun je de browser vertellen wat te doen met, bijvoorbeeld, tekst die niet goed in z'n hok past. Met overflow:hidden; wordt die verborgen, met overflow:visible; hangt die over de rand van z'n hok heen, met overflow:scroll; krijg het hok altijd een eigen sroll balkje en met overflow:auto; krijgt het dat, asl het goed gaat, alleen als er inderdaad meer staat dan er in past.
 
Laatst bewerkt:
nee het is hem nou juist...
het is op vrijwillige basis dus al te veel moeite ga ik er ook niet in steken...

het is in de tussentijd alweer opgelost.

maar ik ga je artikelen wel nog een keertje doorlezen...
 
ja dat is alweer een tijdje verandert weet tot heden nog steeds niet waar je dat moet doen :confused:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan