Url Hash mit Html Base Tag

8

window.location.hash

Wenn ich einen Link für eine JavaScript-Aktion verwende, mache ich normalerweise so etwas:

%Vor%

Wenn jemand auf den Link klickt, bevor die Seite geladen wird, passiert nichts Schlimmes.

Html Basis-Tag

In meinem aktuellen Projekt verwende ich dasselbe Konstrukt, aber mit einem Basis-Tag:

%Vor%

Wenn die Seiten-URL jedoch lautet:

%Vor%

Durch Klicken auf den Link navigieren Sie zu

%Vor%

statt

%Vor%

Wie kann ich das beheben?

    
brad 18.03.2009, 16:48
quelle

7 Antworten

9

Entfernen Sie entweder Ihr base -Tag oder ändern Sie Ihre href -Attribute, um voll qualifiziert zu sein. Was Sie beobachten, ist das beabsichtigte Verhalten, wenn Sie base mit a Elementen mischen.

    
Ken Browning 18.03.2009, 16:49
quelle
3

Wenn Sie ein a-Tag verwenden möchten, ist eine andere Lösung, # nicht als href-Ziel zu verwenden (wenn Sie keins angeben, bewirkt dies einen Sprung an den Anfang der Seite, was ich nicht für wünschenswert halte). Was Sie tun können, ist:

%Vor%

Wirklich, aber wenn Sie etwas tun, das ein Tag sein muss, dann ist eine Spanne die beste Wahl:

CSS:

%Vor%

HTML:

%Vor%     
Adam 18.03.2009 17:38
quelle
1

Wenn es keine URL gibt, die für einen Nicht-JavaScript-Benutzer geeignet ist, verwenden Sie kein <a> . <a> -Tags sind für Links zu anderen Seiten.

Jedes sichtbare HTML-Element kann einen Onclick haben und wird dieses Problem nicht beschreiben.

    
Gareth 18.03.2009 16:51
quelle
0

Geben Sie false für das Ereignis onclick zurück, um den Link zu deaktivieren:

%Vor%

(Dies ist nur ein Beispiel dafür, wie Sie es inline machen würden. Versuchen Sie jedoch, Inline-Deklarationen zu vermeiden und Techniken der progressiven Verbesserungen zu verwenden .)

    
Gumbo 18.03.2009 16:50
quelle
0
%Vor%     
xhdix 11.02.2015 00:07
quelle
0

Ich hatte das gleiche Problem in der Vergangenheit.
Ich hatte einen Link, den ich leer sein wollte, um auf die aktuelle Seite zu verlinken.
Ohne das Basis-HTML-Element ist dies nur ein a -Element mit href="#" .

Mein Beispiel, ohne das base html Element zu verwenden,

%Vor%

Das gleiche Beispiel mit der gefundenen Lösung,

%Vor%

Diese Lösung verwendet nur CSS zum Deaktivieren der Verbindung.

Mit der ersten CSS-Regel cursor: pointer !important; stelle ich sicher, dass dieser Link das richtige (für meinen Fall) Zeigersymbol hat.
Mit der zweiten Regel pointer-events: none; stelle ich sicher, dass dieser Link nicht anklickbar ist.
Sie können mehr über diese Regel nach diesem Link erfahren.

    
George Siggouroglou 24.01.2016 11:44
quelle
0

Sie können href Attribut einfach aus Ihrem <a> -Tag entfernen.

%Vor%     
WebDeg Brian 30.12.2017 02:33
quelle

Tags und Links