Zum Inhalt springen

JavaScript print(); innerhalb des Backends

Erstellt am 17. März 2011 · 1 Antwort · letzte Antwort am 17. März 2011

Tags: Frage

toifel ·

Hallo zusammen,

ich kämpfe gerade mal wieder mit meinem alltäglichen Hassobjekt namens Internet Explorer. Folgendes Problem: Eine Backend-Extension listet eine Bestandsliste mit diversen Produkten. Diese Liste soll direkt aus dem Backend ausgedruckt werden können.
Eigentlich kein Problem, über das normale onclick="self.print();" wird zumindest im FireFox gedruckt, und zwar auch nur der aktuelle Frame mit der Bestandsliste. Internet Explorer hingegen druckt zwar, allerdings immer den linken Frame mit dem Backend Menu... Opera erlaubt sich sein eigenes Special und druckt einfach mal alles was auf eine Seite passt (was darüber hinaus geht wird weg gelassen).

Hat jemand zufällig das Problem schon einmal gehabt und eine Lösung gefunden?! Der betroffene Kunde ist schon etwas betagter und ein Wechsel auf einen guten Browser wird dort nur schwer vermittelbar sein.

Danke im Voraus,
Martin / toi

toifel ·

So, doch wieder selbst gelöst.
Falls es mal jemand brauchen sollte, hier die JavaScript Funktion:

function printUrl(link) {
    var fenster = window.open('', "Popupfenster", "width=400,height=300,resizable=yes");

    content = link.parent().parent().html();
    
    fenster.document.writeln('<link type="text/css" href="../../typo3conf/ext/toisuperdetailed/Resources/Public/Styles/beprint.css" rel="Stylesheet" media="print" />' + content);
    fenster.document.close();
    
    fenster.focus();
    fenster.print();
    fenster.close();
    
    return false;
}

Kurze Info: "content" liest sich den kompletten iFrame-Inhalt, dieser Inhalt wird dann zusammen mit dem print.css in das Popupgeschrieben (writeln). Der Rest sollte dann klar sein...

Gruß, Martin / toi

P.S.: JavaScript Syntax klappt ja prima im Board.... evtl. oben raus nehmen? :p