xsl: include und xsl: param bei Google Chrome mit jQuery-Transformations-Plugin

8

Ich habe versucht, XSL mit Google Chrome zu verwenden, aber ohne Erfolg.
Ich habe gelesen, dass Chrome einige Bugs mit XSLT hat, und einer davon ist, dass es xsl: include nicht unterstützt. Bug kann hier überprüft werden: Ссылка .
Nach einigen Recherchen fand ich eine neue Version des Transform-Plugins von Daer System, und es macht xsl: include in Chrome arbeiten.

Das

jQuery Transform-Plug-in finden Sie in Ссылка

Jetzt ist mein Problem:
Ich verwende ein Standard-Include in einigen XSL-Vorlagen, und dieses Include verwendet einen Parameter, der an die oberste Ebene übergeben wird.

Es ist also so, als hätte ich die Vorlage top.xsl , die ein [xsl: param name="param" /] deklariert, und ich verwende diesen Parameter mit der included.xsl , das heißt der erste mit [xsl: include href="included.xsl"]. Dies funktioniert sowohl in Firefox als auch in Internet Explorer, nicht jedoch in Chrome. Ich habe eine Frage hier auf Stackoverflow gesehen, wo ein Typ die webkit Fix-Funktion aus dem Plugin neu schreibt, aber es funktioniert nicht mit xsl: param so.

Kennt jemand eine Möglichkeit, [xsl: param] so in Google Chrome zu verwenden?

    
Bruno Campos 06.09.2010, 18:45
quelle

3 Antworten

1

Ihr Problem besteht darin, dass Google Chrome (= Chromium) xsl:include

nicht unterstützt

Das Fehlen dieser Funktion wird im Chromium-Projekt, das in "Problem 8441: XSLTProcessor in JS erlaubt nicht xsl: include für http ". Es scheint, dass das Problem durch ein Architekturproblem in WebKit (der in Chrome verwendeten Rendering-Engine) verursacht wird. Da dieses Problem auf WebKit zurückzuführen ist, wird der Fehler als WontFix markiert - der Fix wird (hoffentlich) in der Zukunft bereitgestellt werden, da das ursprüngliche Problem im WebKit gelöst wird.

Ich sehe drei mögliche Alternativen, wie dieses Problem für Sie gelöst werden könnte:

  1. Warten Sie, bis WebKit / Chrome einen Patch erhält, der dieses Problem behebt (möglicherweise dauert es sehr lange ...)
  2. Erstelle / suche einen Hack, der dieses Problem umgeht, indem du zum Beispiel xsl:include für Chrome / Webkit em emimierst (das erfordert viel Arbeit / Entwicklung eines Hacks)
  3. Versuchen Sie, eine Möglichkeit zu finden, Ihre Software so zu schreiben, dass Sie diese spezielle XSL-Funktion nicht benötigen (alternativ können Sie die XSL-Umwandlung serverseitig ausführen)

Meine Empfehlung: Vermeiden Sie die Verwendung von xsl: include mit xsl: param auf der Clientseite, es sei denn, Sie sind bereit, die browserübergreifende Kompatibilität aufzugeben

    
jsalonen 31.05.2011, 13:13
quelle
1

Altes Thema, das ich kenne, aber hier überprüft, ob das Problem behoben wurde.

Ich habe es erneut getestet und es hat zumindest in der Version 47 von Chrome. Endlich können Sie xsl: include verwenden.

    
Peter Brand 17.12.2015 07:04
quelle
0

Es ist ein Problem, aber Sie können dies auch mit einem clientseitigen Shim umgehen, der xsl: import / xsl: includes im Browser vorlädt.

Das folgende ist TypeScript (im Grunde statisch typisiertes JavaScript, das mit JavaScript kompiliert wird) und hat ein paar Verweise auf Interfaces, die ich nicht entfernen wollte, aber es scheint in Chrome zu funktionieren (bin mir nicht sicher über andere Browser) und sollte ausreichen, um irgendjemanden mit einer Lösung zu beginnen.

%Vor%     
user1691694 20.01.2014 07:29
quelle