Hallo,
Was möchtest du erreichen?
Ganz kurz: es ist eine ewig lange xml Datei, die FAQ-Einträge enthält; per xsl wird das ganze "gestylt" und ausgegebenen (client-seitig).
Aha... ich bin davon ausgegangen, dass du dein XML und XSL mit Javascript ladest und nicht per URL + PI.
Mittels einer "bookmark" Funktion kann man bestimmte FAQ-Einträge an die URL anhängen
datei.xml#faqitem=item_1#faqitem=item_2 etc.
Eigentlich würde man das ja über doc.search machen,
Verstehe ich nicht, was würde man über doc.search machen?
Du kannst normal einen Anker an die XML-Datei anhängen
blabla.xml#anker und diesen mit <a name="anker"></a> anspringen. Beide, IE und Mozilla machen mit.
Ähm, in der Hoffnung jetzt keine Details zu vergessen:
Wie gesagt es ist eine FAQ;
--beim Erstellen der Webausgabe (mittels XSL) werden alle Einträge auf display:none gesetzt; lediglich ein Index mit unterschiedlichen Kategorien ist sichtbar
--per Index und JavaScript kann man bestimmte Einträge sichtbar machen etc.
-- warum nicht alles sichtbar? weil darunter die Übersichtlichkeit klar leiden würde und wenn immer nur ein FAQ-Eintrag sichtbar ist, dann steigert das ungemein die Darstellungsqualität. Außerdem haben einige der Einträge Auszüge aus Javascripten, Auflistungen, etc.
(Es sind nich bloß ein/zwei Antwortsätze, sondern teilweise richtige Anleitungen über JavaScript/HTML/XHTML ...)
-- wenn nun ein Eintrag sichtbar ist kann man wie beschrieben einen Anker mit einer eindeutigen ID an die URL anhängen
Warum?
* in der Vergangenheit bestand die FAQ aus über 100 einzelnen HTML Seiten; wollte man jemanden zu genau einem Eintrag den Link schicken, ging das problemlos;
* jetzt besteht die FAQ aus einer einzigen XML Datei, da kann man die URL alleine nicht einfach schicken, weil die dann zum Index zeigt und nicht den vorher mal ausgewählten Eintrag; daher das mit den "Bookmarks".
Lade ich die URL mit einem Bookmark der Form #faqitem=item_10 dann wird mir nach dem Laden der Seite automatisch der entsprechende Eintrag angezeigt. (Alle anderen sind ja wieder display:none;)
-- Warum mach' ich das nicht über doc.search?
Weil jedesmal beim Anhängen der Id an die URl die Seite neu geladen wird und das dauert definitiv zu lange. Mit Modem gute 10 Sekunden. Man soll einfach die Id (per javaScript) anhängen können und fertig.
-- Daher der Umweg über die Anker; ich weiß, dass ich das eigentlich dafür "missbrauche", aber es gibt halt keine andere Möglichkeit als über den Anker (ohne Neuladen der Seite wie bei doc.search) einen Paramter an ein XML-Dokument für die Weiterverarbeitung per JavaScript zu übergeben (bzw. erstmal zu "speichern").
Wenn man die URL (z. B. die obige) dann aufruft parst ein Javascript die gebookmarkten Einträge raus und ermöglicht ein "Durchbrowsen" durch diese Einträge.
D.h. du hängst nicht bloß einen, sondern mehrere Anker an die XML-Datei im URL an?
Das würde wiederum der Logik wiedersprechen, dass man nur einen Anker als Ziel definieren kann.
Ja, es wiederspricht der Logik, aber es geht nicht anders.
Dass man mehrere Anker anhängt dürfte zwar eh der Ausnahmefall sein, aber technisch (zumindest mit Mozilla) kein Problem.
Beispiel:
datei.xml#faqitem_item10#faqitem=item_100
Achja: XML mit XSl erfolgt clientseitig.
Wenn zumindest der erste Anker auslesbar wäre ...
Das Problem scheint wirklich nur in Verbindung von XML und Anker zu sein; in einer ganz normalen HTML Seite geht das ohne Probleme....
Irgendwie verstehe ich nicht immern icht so klar, was du erreichen möchtest. Wenn du eine Auswahl anhand eines URL-Parameters machen möchtest, muss du diesen auch als Paramter übergeben und abfragen:
geht bei clienseitigen Transformation nur wenn du XML und XSL per JavaScript ladest.
Geht das auch ohne ActiveX?
Wenn ich bloß´wüsste was du möchtest ;-)
War es wirklich so undurchsichtig ? :-(
Dein Ansatz war doch ein ActiveX-Ansatz, oder?
Eigentlich will ich nur:
-- per Javascript auf den hash im IE zugreifen:
datei.xml#faqitem=item_100
var DocHash = document.location.hash;
Und das sollte mir im IE - wie im Mozilla - #faqitem=item_100 zurückliefern; und nicht einen leeren String.
Warum gibt es hier so einen riesen Unterschied in der Handhabung zwischen IE und Mozilla?
Warum ist der Himmel blau? ;-)
Weil heute ein schöner Tag war :-)
Grüße (in der Hoffung bald eine Lösung zu finden, schluchz),
Michael
PS: Willst Du die FAQ mal in Natura sehen...?