Michael van Laar: Link-URLs in Druckansicht im Internetexplorer

Mit Hilfe von

a[href]:after {
     content: " ["attr(href)"]";
}

im Print-Stylesheet kann man hinter jedem Link die URL ausgeben lassen. :after funktioniert jedoch nicht im Internet Explorer.

Die Wikipedia schafft es aber trotzdem, die URL jedes Links ausgeben zu lassen - auch im Internet-Explorer. Ich konnte jedoch noch keinen speziellen Trick im Quelltext oder im Stylesheet finden. Dort wird auch nur für Links mit bestimmten Klassen mit Hilfe von :after die URL ausgegeben.

Hat jemand eine Idee, wo der Trick liegen könnte?

Michael

  1. Hallo,

    Die Wikipedia schafft es aber trotzdem, die URL jedes Links ausgeben zu lassen - auch im Internet-Explorer.

    Ach, tatsächlich? Bei mir im IE 5.5 nicht. Die Links werden durch ihre blaue Farbe und durch eine Unterstreichung beim Hovern kenntlich gemacht, in der Statuszeile erscheint auch das Linkziel, wie es sich gehört.
    Eine weitergehende Auszeichnung kann ich nicht entdecken.

    Selbst wenn ich eine Wikipedia-Seite zum Vergleich mal im Firefox aufrufe, sieht das genauso aus - also was genau meinst du eigentlich?

    Hat jemand eine Idee, wo der Trick liegen könnte?

    Welcher Trick?
    Könnte es eine Browsererweiterung sein, die *du* installiert hast und die das leistet, was du hier beschreibst?

    So long,

    Martin

    1. Ach, tatsächlich? Bei mir im IE 5.5 nicht.
      Könnte es eine Browsererweiterung sein, die *du* installiert hast und die das leistet, was du hier beschreibst?

      Es ist mit Sicherheit keine Browsererweiterung. Einfach mal http://de.wikipedia.org im IE aufrufen (hab's bisher nur mit IE 6 probiert) und die Druckansicht im Menü Datei anschauen. Dort sieht man dann hinter jedem externen Link in Klammern und kursiv die jeweilige URL (gem. Stylesheet).

      1. Lieber Michael

        Es ist mit Sicherheit keine Browsererweiterung. Einfach mal http://de.wikipedia.org im IE aufrufen (hab's bisher nur mit IE 6 probiert) und die Druckansicht im Menü Datei anschauen. Dort sieht man dann hinter jedem externen Link in Klammern und kursiv die jeweilige URL (gem. Stylesheet).

        Ich habe das nun auch gerade mal mit dem IE6 probiert.
        Und bei mir werden unter "Datei / Druckvorschau" auch keine
        URLs angezeigt. Die Links sind dann einfach nur fett gedruckt.

        Oder habe ich Dich da jetzt irgendwei falsch verstanden?

        Gruß
        Ingo

      2. Hallo Michael,

        Es ist mit Sicherheit keine Browsererweiterung. Einfach mal http://de.wikipedia.org im IE aufrufen (hab's bisher nur mit IE 6 probiert) und die Druckansicht im Menü Datei anschauen.

        Kann ich beim besten Willen nicht nachvollziehen, sorry.
        Das mit der Druckversion der Seite hatte gestern außerdem überlesen, in der Druckversion werden Links natürlich *überhaupt nicht* gekennzeichnet.

        Dort sieht man dann hinter jedem externen Link in Klammern und kursiv die jeweilige URL

        Nö. Ich sehe da gar nichts, tut mir leid. Weder im IE5.5 noch im IE6. Da ist der Beschreibungstext des Links, dann das Symbol, das ihn als "extern" markiert, weiter nichts.

        Ciao,

        Martin

  2. Könnte mir vorstellen das das mit JavaScript möglich ist.

    Eine andere (jedoch ziemlich behämmerte) Möglichkeit wäre die links in der form
    <a href="http://www.selfhtml.org">http://www.selfhtml.org<span>http://www.selfhtml.org</span></a>

    zu schreiben, den span mittels
    a span {display: none;} auszublenden,
    und im druckstylesheet mittels
    * html a span {display: inline;}
    wieder anzuzeigen.

    inwieweit das jetzt sinnvoll bzw semantisch ist, sei dahingestellt. die frage ist ob der IE das wirklich wert ist.

  3. Hi!

    Dann schau dir die Seite nochmal genauer an. In http://de.wikipedia.org/skins-1.5/common/IEFixes.js steht folgendes Script:

    onbeforeprint = function() {  
        expandedURLs = [];  
      
        var contentEl = document.getElementById("content");  
      
        if (contentEl)  
        {  
          var allLinks = contentEl.getElementsByTagName("a");  
      
          for (var i=0; i < allLinks.length; i++) {  
              if (allLinks[i].className.hasClass("external") && !allLinks[i].className.hasClass("free")) {  
                  var expandedLink = document.createElement("span");  
                  var expandedText = document.createTextNode(" (" + allLinks[i].href + ")");  
                  expandedLink.appendChild(expandedText);  
                  allLinks[i].parentNode.insertBefore(expandedLink, allLinks[i].nextSibling);  
                  expandedURLs[i] = expandedLink;  
              }  
          }  
       }  
    }  
      
    onafterprint = function()  
    {  
        for (var i=0; i < expandedURLs.length; i++)  
            if (expandedURLs[i])  
                expandedURLs[i].removeNode(true);  
    }
    

    Die "Eventhandler" kannte ich zwar nicht, aber es scheint zu funktionieren.

    Gruß aus Iserlohn

    Martin