Heim > Web-Frontend > js-Tutorial > Hilfreiche Hyperlinks mit JavaScript

Hilfreiche Hyperlinks mit JavaScript

Lisa Kudrow
Freigeben: 2025-03-07 00:55:09
Original
337 Leute haben es durchsucht

Hilfreiche Hyperlinks mit JavaScript

dort surfen Sie glücklich auf einer Website. Sie klicken auf einen Link und befinden sich plötzlich auf einer anderen Website, die aufgefordert wird, eine Datei herunterzuladen. Was ist dort passiert? Nervt, nicht wahr? Es muss einen besseren Weg geben, um Ihren Besuchern anzuzeigen, wohin ein Link führt und welche Art von Datei. Um diesen kleinen Ärger zu lösen, habe ich ein bisschen JavaScript und CSS geschrieben, das hübsche kleine Symbole nach den Links hinzufügt - abhängig von der Dateierweiterung und dem Speicherort -, um dem Benutzer die Art des Dokuments anzuzeigen, die sie geladen haben.

Hilfreiche Hyperlinks mit JavaScript

Sie können den Code hier herunterladen und ein Beispiel sehen.

Key Takeaways

  • Der Artikel enthält eine JavaScript- und CSS -Lösung zum Hinzufügen von Symbolen neben Hyperlinks, wobei der Typ der Datei angezeigt wird, zu dem der Link zu einer externen Site führt, oder wenn der Link zu einer externen Site führt. Diese Lösung zielt darauf ab, die Benutzererfahrung zu verbessern, indem klare visuelle Hinweise bereitgestellt werden.
  • Die Lösung ist so konzipiert, dass sie einfach, einfach zu bedienen und mit allen modernen Browsern kompatibel ist, einschließlich IE6. Es verschlechtert sich anmutig, wenn CSS oder JavaScript deaktiviert sind und die Dateiverwendung auf eine JavaScript -Datei und eine CSS -Datei einschränken.
  • Die Lösung beinhaltet das Erstellen einer JavaScript -Datei (ikonize.js) und einer CSS -Datei (ikonize.css). Die JavaScript -Datei bestimmt die Dateierweiterung jedes Hyperlinks und fügt die entsprechende CSS -Klasse und das entsprechende Symbol hinzu. Die CSS -Datei enthält die Symbolklassen.
  • Die Lösung enthält Einschränkungen: Sie erkennt keine anhand von Abfragen basierenden Navigationsverbindungen, und ein Link muss eine Dateierweiterung haben, damit ein Symbol zugewiesen wird (es sei denn, es handelt sich um eine externe Site). Wenn CSS deaktiviert ist, wird nur das externe Link -Symbol angezeigt. Wenn JavaScript deaktiviert ist, gibt es keine sichtbaren Änderungen an der Seite.
der kurze

Die Hauptüberlegungen beim Erstellen dieser Funktionalität waren:

  1. Einfachheit - es muss einfach zu verwenden

  2. anmutiger Abbau - Im Fall von CSS oder/und JavaScript werden

  3. deaktiviert.

  4. minimale Verwendung von Dateien - nur ein JavaScript und eine CSS -Datei

  5. Machen Sie es ein Plug-and-Play wie möglich-es kann also schnell zu einer Website hinzugefügt werden

  6. Begrenzung der Gesamtmenge des Code

  7. Kompatibilität mit allen modernen Browsern, einschließlich IE6

Warum sich die Entfernung von einer CSS-Lösung wegweist?

a[href$='.doc'] { <br>
  display: inline-block; <br>
  padding-left: 16px; <br>
  background: transparent url(images/icon_doc.gif) center right no-repeat; <br>
}
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Sie können dies bereits in CSS unter Verwendung von Attributauswahlern tun. Hier ist ein Beispiel:

Warum sollten Sie es mit einem Skript tun, wenn die meisten modernen Browser die Symbole mit nur CSS anzeigen?

Die Antwort ist einfach: IE6. Alle anständigen Browser unterstützen CSS3 -Attribut -Selektoren… außer IE6. Dieses Stück Scripting mit CSS lässt IE6 gut spielen; Tatsächlich funktioniert es sogar in IE5.5.
Inspiration und Kredit

Bevor wir anfangen, möchte ich die hervorragenden und kostenlosen Seiden -Ikonen von Mark James bei Famfamfam anerkennen, die wir in diesem Artikel verwenden werden.

Hilfreiche Hyperlinks mit JavaScript

Außerdem, Kredit, wo Kredit fällig ist: Dieser Artikel wurde von dem Stück -Symbol von Textlinks mit CSS von Alexander Kaiser inspiriert, was wiederum von Ask the CSS -Typ inspiriert wurde, die Hyperlink -Cues mit CSS zeigt. Darüber hinaus habe ich einige hervorragende Funktionen verwendet, die von Sitepoint von James Edwards geschrieben wurden, und ein paar weitere aus der Kern -JavaScript -Bibliothek, geschrieben von Kevin Yank und Cameron Adams und im SitePoint -Buch, einfach JavaScript.

verewigt.
Wie funktioniert es?

Kurz gesagt: Wir nehmen alle Links auf der Seite auf, erarbeiten Sie die Dateierweiterung, auf die sie Links verweist, und fügen dann das entsprechende Symbol nach dem Link hinzu. Hübsch.

Um alles funktionieren zu lassen, sind drei Dateien beteiligt: ​​

  1. Die HTML -Seite, die die Links enthält, index.html
  2. Die CSS -Datei, die die Icon -Klassen enthält, ikonize.css
  3. Die JavaScript -Datei, die die CSS -Klassen und -Symbole zu den Links hinzufügt, ikonize.js
Die Quick-Start-Methode

Wenn Sie nun die WHYS UND WO FORMEN ADFEPEPEPEPEN und sie Ihrer Seite nur hinzufügen möchten, ist hier die Kurzversion:



  1. Fügen Sie die Links zum JavaScript- und CSS -Dateien im Header der Seite hinzu (ändern Sie die Dateireferenzen, um Ihrem Site -Setup zu entsprechen).

  2. Stellen Sie Ihren Symboleordner auf Ihrer Website ein und stellen Sie sicher, dass die URL -Referenzen in der Datei ikonize.csss korrekt sind.
    rufen Sie die JavaScript -Funktion auf, die kurz vor dem Schlusskörper -Tag enthalten ist, wie SO:


Siehe - Ich habe dir gesagt, dass es einfach zu bedienen ist!

Um den Einfachheit halber habe ich mich entschieden, die Funktion nach dem Laden des DOM aus dem HTML aufzurufen. Es gibt andere Möglichkeiten, dies mit JavaScript zu erreichen, aber sie liegen außerhalb des Rahmens dieses Artikels.

Die vollständige Erklärung
Machen Sie sich bequem, wir werden uns mit den inneren Arbeiten befassen.

Konfiguration

Um die Dinge einfach zu halten, ist der größte Teil des Setups bereits für Sie durchgeführt. Sie müssen die Konfiguration nur ändern, wenn Sie die Symbole oder Dateierweiterungen ändern müssen. Es gibt zwei Orte, an denen diese Änderungen vorgenommen werden können: das JavaScript (ikonize.js) und die CSS -Datei (ikonize.css).

konfigurieren Sie ikonize.js

oben in der Datei sehen Sie alle Konfigurationsvariablen: classprefix, classexternal und classiconloc.

a[href$='.doc'] { <br>
  display: inline-block; <br>
  padding-left: 16px; <br>
  background: transparent url(images/icon_doc.gif) center right no-repeat; <br>
}
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
classPrefix is the prefix you want to give the individual CSS classes. Use this to prevent any conflicts with any existing CSS classes. The default is iKon_.
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
classExternal is the name of the CSS class you want to use to show a link to an external site.
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Welche Links erhalten ein Symbol?

Um zu definieren, auf welche Art von Datei der Link geht, werden wir uns mit der Dateierweiterung befassen. Die Dateitypen sind in zwei Gruppen aufgeteilt: diejenigen, die eindeutige Symbole wie Torrent -Dateien haben, und diejenigen, die das gleiche Symbol teilen, jedoch unterschiedliche Dateierweiterungen haben, z. B. Flash -Dateien (.fla und .swf).

Gruppierungsdateierweiterungen, die das gleiche Symbol teilen, speichert Ihnen Hunderte von CSS -Klassen und -Symbolen. Um dies zu erreichen, habe ich zwei Arrays erstellt.

Das erste Array, individualClassArray, enthält die Dateierweiterungen aller Links mit einzelnen Symbolen. Die Basis des CSS -Klassennamens entspricht der Dateierweiterung. Das heißt, eine Textdatei wird mit "TXT" verwiesen und der CSS -Klassenname ist der CLASSPREFIX (vor früher) und "Txt" den Basis -CSS -Klasse -Namen, wobei in diesem Fall eine CSS -Klasse mit dem Namen "IKON_TXT" erstellt wird.

.
a[href$='.doc'] { <br>
  display: inline-block; <br>
  padding-left: 16px; <br>
  background: transparent url(images/icon_doc.gif) center right no-repeat; <br>
}
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
.

classPrefix is the prefix you want to give the individual CSS classes. Use this to prevent any conflicts with any existing CSS classes. The default is iKon_.
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Das zweite Array, ClassArray, ist eigentlich ein mehrdimensionales Array, aber lassen Sie sich nicht davon abschließen. Grundsätzlich handelt es sich um eine Gruppe einzelner Arrays, die nach der Art von Ikone gruppiert sind, die wir gerne verwenden würden. Das erste Element in diesem Array ist individualClassArray (dieses Array muss immer das erste Array sein). Die folgenden Arrays ähneln dem vorherigen Array mit einem wichtigen Unterschied: Das erste Element in jedem der Arrays ist der Name der CSS -Klasse, die verwendet wird, und die folgenden Elemente sind die Dateiverlängerungen, die diese Klasse benötigen. Im folgenden Beispiel werden die Erweiterungen .swf und .fla Datei mit der CSS -Klasse "Flash" zugeordnet.

Hinweis: Dateierweiterungen schließen den Punkt aus, dh XLS nicht .xls. Für die maximale Portabilität hat der verwendete tatsächliche CSS -Klassenname ein Präfix wie "ikon_", das wir zuvor konfiguriert haben - aber in diesen Arrays schließen wir das Präfix immer aus

aus. Eine Flash -CSS -Klasse wird also immer eher als "Flash" als als "ikon_flash" bezeichnet.

externe Links

Um herauszufinden, ob ein Link eine externe Site ist, müssen wir den Hostnamen der aktuellen Seite kennen.

dafür verwenden wir:
classExternal is the name of the CSS class you want to use to show a link to an external site.
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Dies belegt den Standort des aktuellen Dokuments und erhält den Domänennamen mithilfe der QualifyHref -Funktion, um sicherzustellen, dass wir eine voll qualifizierte Adresse und die Parseurl -Funktion haben, um den Hostnamen zu erhalten. (Beide Funktionen wurden von unserem ansässigen JavaScript Guru Brothercake geschrieben und in seinem Blog -Beitrag behandelt). Wenn wir später die Klassen für die externen Links hinzufügen, verwenden wir diesen Hostnamen, um herauszufinden, ob der Link extern auf unserer Website ist.

Der Code, der die Arbeit tatsächlich macht

Jetzt müssen wir alle Links über die Seite mit document.getElementsByTagName ("a") abrufen und die Dateierweiterung des Links bestimmen.

Wir tun dies mit den Funktionen an Parseurl und QualifyHref erneut.


Nehmen Sie zuerst den HREF -Wert des A -Elements:

linkhref = aelements [iv] .reif;


Analysieren Sie den Wert als nächstes, um weitere Informationen über den Link zu erhalten:

url = parseurl (qualifyHref (linkhref));

Dann erhalten Sie die Erweiterung für den Link:
Fileext = uRl.Extension;

Dann müssen wir diese Links durchlaufen und herausfinden, ob sie ein Symbol benötigen. Hier wird es ein bisschen schwieriger. Wir müssen ClassArray und jedes der Arrays, die es enthält, durchlaufen. Wir tun dies, indem wir eine Schleife in einer Schleife ausführen. Ja, das ist eine Schleife in einer Schleife in einer Schleife! Dieses haarige Stück Code sieht folgendermaßen aus:

a[href$='.doc'] { <br>
  display: inline-block; <br>
  padding-left: 16px; <br>
  background: transparent url(images/icon_doc.gif) center right no-repeat; <br>
}
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Benötigt dieser Link ein Symbol?

Um herauszufinden, ob wir ein Symbol hinzufügen müssen, vergleichen wir die Dateierweiterung des Links mit jeder der in unseren Arrays aufgeführten Erweiterungen.

classPrefix is the prefix you want to give the individual CSS classes. Use this to prevent any conflicts with any existing CSS classes. The default is iKon_.
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
classExternal is the name of the CSS class you want to use to show a link to an external site.
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Links zu externen Websites

trainieren, wenn sich der Link zu einer externen Website befindet

externalIconLoc is the location of the image to use for the external icon.
Nach dem Login kopieren
Wenn es richtig ist, werden wir ein neues Bildelement im Anker anhängen, eine Quelle und ID hinzufügen und dann ein Alt- und Titelattribut für das Bild hinzufügen. Wir fügen das zusätzliche Symbol hinzu, anstatt nur eine Klasse zuzuweisen, um klar zu zeigen, dass dieser Link auf eine andere Website geht, und dem Symbol Titel- und Alt -Attribute hinzuzufügen.

.

IndividualClassArray = Array('txt', 'xls', 'css', 'torrent');
Nach dem Login kopieren

Die CSS -Klassen

Kehren wir jetzt zur CSS -Datei zurück.

Hier ist unsere CSS -Klasse, um das Symbol zu .DOC -Dateien hinzuzufügen. Beachten Sie, dass der Klassenname mit "Ikon_" und dann der Dateierweiterung "doc" vorangestellt ist. Diese Klasse stellt im Grunde genommen ein bisschen Polster in die Ober- und Unterseite und rechts neben dem Link. Es fügt dann ein Hintergrundbild des Symbols in diesen Raum hinzu.

classArray = Array(  <br>
IndividualClassArray,  <br>
Array('flash', 'swf', 'fla')  <br>
);
Nach dem Login kopieren

Für unsere externen Link -Symbole verwenden wir eine etwas andere Klassenstruktur. Wir fügen etwas Polster oben und unten hinzu, um sicherzustellen, dass unser Symbol randlos ist.

url = parseURL(qualifyHREF(document.location.href)).hostname;
Nach dem Login kopieren

Wenn Sie die Klassikvariable geändert haben, vergessen Sie nicht, diese Klassennamen zu übereinstimmen.

Einschränkungen

Der Link muss über eine Dateierweiterung verfügen, damit ein Symbol dem Link zugewiesen wird (es sei denn, es handelt sich um eine externe Site). Das Skript erkennt auch keine query-basierten Navigationslinks. Wenn CSS deaktiviert ist, wird nur das externe Link -Symbol angezeigt. Wenn JavaScript deaktiviert ist, gibt es keine sichtbaren Änderungen an der Seite.

Schlussfolgerung

ikonize ist eine schnelle und einfache Möglichkeit, visuell aussagekräftige Symbole nach Links hinzuzufügen. Das Skript funktioniert in IE5.5 und kann unabhängig von CSS3 -Attributauswahlern arbeiten. Wie zu erwarten ist, verschlechtert sich das Skript gut und ist leicht zu konfigurieren. Ich hoffe du findest es nützlich!

häufig gestellte Fragen zu Hyperlinks in JavaScript

Wie kann ich mit JavaScript einen Hyperlink erstellen? Sie können ein neues Ankerelement erstellen, sein HREF -Attribut festlegen und es dann an den Körper des Dokuments anhängen. Hier ist ein einfaches Beispiel:

var link = document.createelement ('a'); Die URL der Seite, auf die wir verlinken möchten. Anschließend setzen wir den Text des Links und fügen schließlich den Link zum Körper des Dokuments hinzu. Dieses Attribut gibt an, wo das verknüpfte Dokument geöffnet werden soll. Es kann auf "_blank" eingestellt werden, um das Dokument in einem neuen Fenster oder einer neuen Registerkarte "_self" zu öffnen, um das Dokument im selben Frame zu öffnen, wie es geklickt wurde (dies ist Standard), "_parent", um das Dokument im übergeordneten Frame oder "_top" zu öffnen, um das Dokument im gesamten Körper des Fensters zu öffnen. Hier ist ein Beispiel:

var link = document.createelement ('a');
link.href = "https://www.example.com"; Das Attribut wird auf "_blank" gesetzt, was bedeutet, dass der Link in einem neuen Fenster oder einer neuen Registerkarte geöffnet wird. Dieses Attribut enthält zusätzliche Informationen zum Link, z. B. den Namen des verknüpften Dokuments, und wird häufig als Tooltip angezeigt, wenn sich die Maus über den Link bewegt. Hier ist ein Beispiel:

var link = document.createelement ('a');
link.href = "https://www.example.com"; Um zu Beispielen zu gehen, wird dies als Tooltip angezeigt, wenn sich die Maus über den Link bewegt.

Wie kann ich einen Hyperlink mit JavaScript? Diese Methode beseitigt einen angegebenen untergeordneten Knoten des angegebenen Elements. Hier ist ein Beispiel:

var link = document.getElementById ('myLink');
link.parentnode.removechild (link);

Wie kann ich den Text eines Hyperlinks mit JavaScript ändern? Diese Eigenschaft setzt oder gibt den Textinhalt des angegebenen Knotens und alle Nachkommen zurück. Hier ist ein Beispiel:

var link = document.getElementById ('myLink'); Mit der Immobilie "Stil" gestaltet. Diese Eigenschaft wird verwendet, um Inline -Stile aus einem Element hinzuzufügen, zu ändern oder zu entfernen. Hier ist ein Beispiel:

var link = document.getElementById ('mylink');
link.style.color = "rot"; Ereignishörer zu einem Hyperlink mit JavaScript? Diese Methode erhöht einen Ereignishandler an das angegebene Element. Hier ist ein Beispiel:

var link = document.getElementById ('myLink'); Wenn der Link geklickt wird, wird ein Warnfeld angezeigt. Diese Methode storniert das Ereignis, wenn es storniert werden kann, was bedeutet, dass die Standardaktion, die zum Ereignis gehört, nicht erfolgt. Hier ist ein Beispiel:

var link = document.getElementById ('myLink'); Fügen Sie mit seiner ID einen Klickereignis -Listener an. Wenn der Link geklickt wird, folgt er nicht der URL, und stattdessen wird ein Warnfeld angezeigt. Dieses Attribut gibt an, dass das Ziel heruntergeladen wird, wenn ein Benutzer auf den Hyperlink klickt. Hier ist ein Beispiel:


var link = document.createelement ('a'); Datei ";
document.body.Appendchild (link);
In diesem Code erstellen wir zunächst ein neues Ankerelement und setzen dann sein HREF -Attribut auf die URL der Datei, die wir herunterladen möchten. Anschließend setzen wir das Download -Attribut auf den Namen der Datei und fügen schließlich den Link zum Körper des Dokuments hinzu.

Wie kann ich einen Hyperlink erstellen, der einen E -Mail -Client mit JavaScript öffnet? Dieses Protokoll öffnet den E -Mail -Client des Benutzers mit einer neuen Nachricht, die bereit ist, gesendet zu werden. Hier ist ein Beispiel:

var link = document.createelement ('a'); "Mailto: Beispiel@example.com". Anschließend setzen wir den Text des Links und fügen schließlich den Link zum Körper des Dokuments hinzu.

Das obige ist der detaillierte Inhalt vonHilfreiche Hyperlinks mit JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage