werner: Abkürzung für viele gleiche URLs

Hallo HTML-Profis!

ich habe ein HTML-Dokumente, in dem zahlreiche gleiche Links vorkommen

<a href="http://www.domain.com/file.htm" target="_blank" >

  1. Gibt es nun eine Möglichkeit (ohne JavaScript - also nur mittels HTML und CSS)
    diese mitunter längeren "href"-URLs nicht in jedem <a>-Tag von neuem voll ausschreiben zu müssen.
    Wie z.B. bei styles die Definition eine CSS-Klasse im Head-Bereich und dann die Verwendung im Tag mittels "class=.." ?

  2. Wie sieht es für den Fall aus, dass zwar die "file.htm" nicht mehr gleich sind, also auch z.B. "file2.htm" vorkommt - sehrwohl aber der größte Teil der URL davor immer gleich

  3. Das selbe für das "target"-Attribut. Lässt sich auch dieses irgendwie default-mäßig auf "_blank" definieren?

  1. Hi,

    Antwort auf beide Fragen: http://de.selfhtml.org/html/kopfdaten/basis.htm

    Zumindest vom Einsatz von ersterem würde ich aber abraten, es kann unerwartete Probleme verursachen.

    Und die Wahl des Zielfensters sollte man, sofern keine besonderen Bedingungen vorliegen, lieber dem Nutzer überlassen.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Danke, an diesen Kniff habe ich mich gar nicht mehr erinnern können. Das ist wohl HTML-mäßig das Maximum was an Verkürzungen herauszuholen ist.

      Ich will so gut es geht JavaScript vermeiden, denn richtig sicher gehen kann man nicht, dass dies jeder User aktivert hat/will/darf/

      Und vor allem wie schaut es JavaScript mäßig bei Gebrauch mit Smartphones und Tablets aus - kann man da JavaScript beim Großteil der User voraussetzen?

    1. Gibt es nun eine Möglichkeit (ohne JavaScript - also nur mittels HTML und CSS)
      diese mitunter längeren "href"-URLs nicht in jedem <a>-Tag von neuem voll ausschreiben zu müssen.

    Ja, Du wirst Dich aber mit Möglichkeiten Deines Editors beschäftigen müssen (suchen & ersetzen von Platzhaltern!) ODER Deine Webseiten durch Software erzeugen lassen. Deine Anforderungen wären schon mit einem einfachen Template-Skript und PHP zu erfüllen:

    Datei: seite.conf.php

    <?php  
    $TplItems['Link_1']='http://www.example.org/dir/dir/resource?foo=bar';  
    $TplItems['Link_2']='http://www.example.org/';  
    $TplItems['Datum']=date('d.m.Y');  
    $TplItems['Zeit']=date('H:i:s');  
    ?>
    

    Datei: seite.template.html

    <html>  
          <head>  
          </head>  
          <body>  
               <ul>  
                      <li><a href="TPL::Link_1::LPT">Klick!</a></li>  
                      <li><a href="TPL::Link_2::LPT">Klick!</a></li>  
                      <li><a href="TPL::Link_1::LPT">Klick!</a></li>  
               </ul>  
               <p>(Erzeugt am TPL::Datum::LPT um TPL::Zeit::LPT.)</p>  
          </body>  
    </html>
    

    Datei: seite.php - diese wäre im Beispiel aufzurufen:

    <?php  
    require_once 'seite.conf.php';  
    $html=file_get_contents('seite.template.html');  
    foreach (array_keys($TplItems) as $key) {  
         $html=str_replace("TPL::$key::LPT", $TplItems[$key], $html);  
    }  
    print $html;  
    ?>
    

    mit einem Aufruf von "php seite.php" (am Prompt) erhältst Du:

    <html>  
    	<head>  
    	</head>  
            <body>  
                 <ul>  
    	           <li><a href="http://www.example.org/dir/dir/resource?foo=bar">Klick!</a></li>  
    	           <li><a href="http://www.example.org/">Klick!</a></li>  
    	           <li><a href="http://www.example.org/dir/dir/resource?foo=bar">Klick!</a></li>  
                </ul>  
                <p>(Erzeugt am 14.11.2012 um 14:39:04.)</p>  
           </body>  
    </html>
    

    und mit "php seite.php > seite.html" hast Du es gleich abgespeichert. Das geht auch lokal, wenn Du kein Php auf dem Webserver zur Verfügung hast, übertrage dann nur die erzeugten html-Dateien auf den Webserver.

    Natürlich müsstest Du PHP installieren. Das funktioniert in vergleichbarer Weise aber mit praktisch jeder Programmiersprache. Das Beispiel ist bewusst primitiv, es gibt zahlreiche andere, teils sehr ausgefeilte Möglichkeiten.

    Fred

    1. danke Fred,

      aber eine PHP-Skript Lösung kommt in meinem Fall nicht in Frage. Es soll mit einer lokal ausführbaren HTML-Datei möglich sein - bestmöglich ohne JavaScript Verwendung.
      Mir war klar, dass dies ohne Scripts fast unmöglich ist, daher ist der Tipp von ChrisB mit Adress- und Zielfensterbasis wohl das Maximum was sich HTML-mäßig an Code einsparen lässt.