Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] iframe kann kein utf-8?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] iframe kann kein utf-8?

    Hallo,

    ich muss innerhalb einer Webseite (utf-8 encoded) den HTML Inhalt von anderen Dokumenten anzeigen. Die Verwendung von DIV hat den Nachteil, dass definierte CSS-Klassen aus dem anzuzeigenden Text Auswirkungen auf das Layout der umgebenden Anwendung haben.

    Um das zu vermeiden, setze ich nun einen iframe ein, der mit folgendem JavaScript gefüllt wird:

    Code:
    var f = document.getElementById('myframe').contentWindow;
    with (f.document) {
        open();
        write(content);
        close();
    }
    Das klappt auch. Allerdings habe ich massive Probleme mit dem Encoding. Ich füge beispielsweise folgendes in den iframe ein (also über content):

    Code:
    <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
    <html>
    <head>
    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
    </head>
    <body>
    some UTF-8 encoded text
    </body>
    </html>
    Leider stellt mir der Browser (IE, FF und Opera) immer die UTF-8 Codes in der Form dar: üß

    Im FireBug ist alles ok, aber auch dort wird der Text als ISO 8859 dargestellt.

    Ich hab jetzt allerlei Tricks versucht, um per JavaScript das Encoding zu setzen, aber f.document.characterSet liefert mir sogar, dass im iFrame utf-8 verwendet würde. Nur interessiert das den iframe nicht

    Ich setze defaultCharset, characterSet und inputEncoding. Ohne Wirkung

    Was kann das sein und wie würdet Ihr das lösen?

    Kukulkan

  • #2
    warum fügst du das per javascript ein ? ...

    iframe mit ganz normalem src-Attribut sollte dein Problem lösen
    HTML-Code:
    <iframe src="URI" name="Name"
       width="Breite" height="Höhe">
    Inhalt bei Nichtanzeige
    </iframe>
    einfach anstelle von URI die vollständige Adresse der Webseite für den Frame angeben ..

    Kommentar


    • #3
      Hallo,

      ja, ich habe vergessen das zu erwähnen. In dem Fall würde ich den Content ja herunterladbar machen (wenigestens für einen kurzen Moment). Da der Service Sicherheitsrelevant ist, sollte der Content nicht per Download verfügbar sein (könnte ein Sicherheitsproblem entstehen). Deshalb kein src Attribut. Ich könnte hier zwar was drumrum-bauen (mit Session-Abgleich etc.), aber dachte es wäre so einfacher.

      Grüße,

      Kukulkan

      Kommentar


      • #4
        Klingt ziemlich blödsinnig als Begründung ...

        Wo kommt denn im JavaScript die Variable content her?

        Kommentar


        • #5
          Hallo,

          die Variable Content wäre in der selben Seite übergeben (base64 codiert).

          Ich finde es übrigens nicht in Ordnung, wenn eine normale Antwort meinerseits als blödsinnig bewertet wird. Einerseits soll man als Entwickler die Sicherheit immer im Auge behalten und andererseits werden hier Sicherheitsbedenken als blödsinnig betitelt...

          Egal, Problem inzwischen gelöst.

          Danke,

          Donald

          Kommentar


          • #6
            du willst doch jetzt bas64 encode nicht als "Sicherheit" verkaufen ? .. da benutz lieber https sowohl für deine Webseite, als auch die Seite, die im iframe aufgerufen wird...

            je länger ich drüber nachdenke .. vermutlich ist sogar genau diese Herumfrickelei mit base64 der Schuldige für dein Encoding Problem ...

            Kommentar


            • #7
              Zitat von Donald Beitrag anzeigen
              Einerseits soll man als Entwickler die Sicherheit immer im Auge behalten und andererseits werden hier Sicherheitsbedenken als blödsinnig betitelt...
              Ich habe nicht Sicherheitsbedenken als blödsinnig bezeichnet - sondern deinen Umgang mit der Thematik.

              Kommentar

              Lädt...
              X