08. januar 2009 - 17:26Der er
5 kommentarer og 1 løsning
Load javascript filer i top
Jeg benytter et simpelt "side" system, hvor jeg istedet for at include min top html kode, og bund html kode loader det igennem en meget simpel php class. Således behøves jeg ikke at skrive doctype, metakode, links til js filer osv. på hver underside.
Sådan skriver jeg på hver underside:
$side = new Side; $side->setSideNavn("En default side titel hvis ønsket"); $side->top(); //mit indhold på undersiden her $side->bund();
class Side {
private $sidenavn;
public function __construct($sidenavn = null) { $this->setSideNavn($sidenavn); }
public function getSideNavn() { return $this->sidenavn; }
public function top() { //print html starten på en underside, doctype, js indkludes mm. }
public function bund() { //print alt bund html } }
Mit problem er så at jeg godt kunne tænke mig at loade js filer ind i min $side->top(); funktion - eftersom jeg nu, loader samtlige JS filer i top funktionen selvom det ikke er alle der benyttes på alle undersider.
Kan man lave noget smart med $side->hentJs("/sti/fil.js"); for hver fil man ønsket hentet? Det skal jeg selvfølgelig gøre inden jeg printer top.
$side = new Side; $side->setSideNavn("En default side titel hvis ønsket"); $side->loadJS('/js/script.js'); //eller hvad navn du nu kan finde på.
Og i din funktion top() henter du så $js ud. Du kan evt. lave $js til et array. Og lade loadJS() smide hvert script i et array og løbe det igennem når du printer det ud.
Det er præcist sådan noget jeg tænkte på, jeg prøvede igår at lave noget med array eftersom man jo nogle gange bruger flere Js filer, derved ville linjen $side->loadJS optræde flere gange.. men jeg buggede ved at skrive den korrekt ud af array og ind i top()
public function loadJS($script){ $this->js[] = $script; }
public function top(){ //Din kode over script $size = count($this->js); for($i = 0; $i < $size; $i++){ $output .= '<script type="text/javascrit" src="'.$this->js[$i].'"></script>'; } //Din kode under script }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.