2009-06-26 13 views
0

Ich arbeite an einem Projekt, bei dem der Client vorhandene Seiten dynamisch in eine einzelne Seite laden möchte. Das ist kein Problem, aber das Design funktioniert nicht so, wie es sein sollte, wenn die Seiten als eigenständige Dateien auf der bestehenden Site geladen werden. Gibt es eine Möglichkeit, den CSS-Link von jeder Seite zu extrahieren und dynamisch auf die Viewer-Seite anzuwenden?externe Datei mit CSS intakt laden?

Hier ist eine Kopie der Funktion, die ich die externen Seiten in die Viewer-Seite aufrufen schrieb:

$(function() { 
$('a.dock-item2').click(function() { // click on an anchor with the dock-item2 class 
    $("#page").remove();    // remove what's in the viewer already 
    var href = $(this).attr('href'); // grab the external file path and name 
    $('<div id="page" />').load(href, function() { // create a new div and load 
                 // the page content 
    $(this).hide()    // just stuff to make a nice transition... 
    .appendTo('#viewer') 
    .fadeIn(1000); 
    });     
return false; 
})}); 

ich es in die div in Frage streng anwenden möchten ... aber vielleicht, dass isn Das Beste ist es zu tun. Sollte ich stattdessen dieses Zeug in einen iframe laden? Vielleicht ist es nur Freitag und ich kann nicht mehr vernünftig denken ...

Vielen Dank im Voraus für Hilfe/Beratung !!

Antwort

0

Das Abrufen von Nicht-Body-Tags (Tags, die nicht im Body vorhanden sind) von Remoteseiten ist mit den ajax-Funktionen von jQuery schwierig/unmöglich. Wenn dies der Fall ist, können Sie ein PHP-Skript lokal als Mittler einrichten. Es kann den Inhalt der Seite lesen, die CSS-Datei finden und diese dann zurückgeben oder sogar den Inhalt der CSS-Datei selbst zurückgeben - Sie können es dann dynamisch auf Ihrer Seite platzieren. Dies sollte nicht zu schwierig sein, vor allem, wenn Sie so etwas wie phpQuery verwenden, um das <script>-Tag oder sogar PHPSimpleHTMLDOMParser, die phpQuery ähnlich ist zu greifen.

Alles hypothetisch, aber es könnte nur funktionieren;) Natürlich, wenn Sie nur Iframes laden wollten, könnten Sie. Dies würde alle Verbindungen innerhalb des Iframes halten.

+0

Ich dachte, dass PHP könnte die bessere Lösung hier sein, aber ich habe nur versucht zu sehen, ob es eine js Workaround. Meh, keine große Sache ... gibt mir an diesem Wochenende etwas zu arbeiten, wenn mir langweilig wird! Danke für die Hilfe!! –

+0

Überprüfen Sie auch diese vorherige Antwort: http://stackoverflow.com/questions/1050333/jquery-ajax-parse-response-text/1050344#1050344 – Sampson

+0

danke für den Link. Ich denke, es hilft RTFM wirklich und stellt keine dummen Fragen. ;) –

0

Kein JavaScript. Vielleicht in PHP mit fopen fwrite Funktionen, aber ich denke, dass das mit einer Menge Overhead kommt.

Verwandte Themen