jquery, fancybox - kann man externes html reinladen?

B

berndbernd35

Mitglied
Thread Starter
Dabei seit
24.11.2004
Beiträge
74
Reaktionspunkte
0
Ich habe Links mit fancybox eingerichtet.
Die öffnen auch brav jeweils ihr Fensterchen.

Die Inhalte dieser PopUp-Fenster sind ja in "unsichtbaren" DIVs der html-Seite "vorgeladen".

Allerdings möchte ich in diesen Fenstern eine externe HTML-Datei laden.
Geht das überhaupt?

(Grund: Ich möchte den Fenster einen besucher-tracking-code mitgebe, aber der schaut wahrscheinlich nach der URL des Dokuments ... und die wäre dann wohl immer gleich, wenn kein externes html reingeladen wird. Und für alle Fenster/Links schon auf einen Schlag (vor-)geladen)

Ich hoffe, ich muß nicht die mühsam zusammengestellte Seite neu und ganz anders oohne fancybox neu basteln. Hat jemand eine Idee? Würde mich sehr freuen.
Gruß Bernd
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: berndbernd35
Danke, Zieger.
Aber werden die Inhalte der iFrames nicht schon vorgeladen? Dann könnte mein gewünschtes tracking nur (falsch) sagen: alle Links/Fensterchen angeschaut (obwohl sie nur in die unsichtbaren DIVs vorgeladen wurden,)

Oder werden die erst bei Aufruf tatsächlich geladen? Das wäre natürlich schön.
 
Über deinen Link zu fancybox kam ich zum entsprechenden Forum. Da stand ein Tipp zum Thema:



1) external html page:

<script type="text/javascript" >
$(document).ready(function(){
$("#autostart").fancybox({
'width': 640, //or whatever
'height': 400.
'type': 'iframe' // see this?
});
}); // document ready

</script>

<body onload="$('#autostart').trigger('click');">

<a href="http://domain.com/page-to-display.html"
id="autostart">something here maybe ... or not</a>

---------------------
Vielleicht kriege ich es damit hin.
danke nochmal
 
Keine Ahnung wie man die Fancybox da anpassen muss, jedenfalls klappt solch ein Vorhaben damit wunderbar:

http://api.jquery.com/load/
 
Also ich habe selbst ein kleines jquery script geschrieben. Dieses lädt aus Seiten 2 Div's heraus und fügt diese in den angegebenen Div's ein.
Man kann es gut als Navigation verwenden, da so immer nur die benötigten Div's hineingeladen werden und nicht immer wieder die ganze Seite.

Damit das Funktioniert sollte man auf die Namensgebung achten. bei den Links die das Skript aktivieren sollen muss man beim href tag jeweils Raute und den namen des Dokuments das geöffnet werden soll angeben. Also etwa so <a href="#buch">Buch</a>

Da bei mir die Indexseite einen Ordner über den restlichen Seiten ist muss man zuerst in diesen unterordner rein dieser ist bei mir und im Skript pages benannt
Das Dokument sollte in diesem Beispiel dann "buch.html" heissen

Die Div's die geladen werden sollten wenn man das Skript so beibehält folgendermassen aussehen: <div id="buchtitle">Titel</div> und <div id="buchbox">Inhalt</div>

Die ziel- Div's sollten wenn man mein Skript so belässt die ID's #title und #mainbox haben.

-------------------------------------------------------

function hashnav(){
var hashfull = document.location.hash
var hash = hashfull.replace('#', '');
$("#title").load("pages/" + hash + " div#" + hash + "title");
$("#mainbox").load("pages/" + hash + " div#" + hash + "box");
}

$(document).ready(function() {
hashnav();

$(window).bind( 'hashchange', function() {
hashnav();
return false;
});

-------------------------------------------------------

*Edit

Es ist hauptsächlich für eine Navigation gedacht, kann aber auch verwendet werden code einzufügen. Wobei ich da eher dieses skript empfehlen würde

$("body").delegate("#home", "click", function(){
$("#title").load("pages/home.html div#hometitle");
$("#mainbox").load("pages/home.html div#homebox");
return false;
});

*Edit

Habe den Code noch etwas gekürzt habe noch etwas gefunden was man rausnehmen kann ^^
 
Zuletzt bearbeitet:
Zurück
Oben Unten