anker mit javasript anweisung verknüpfen
blumentopf
- javascript
Hallo,
gibt es eine Möglichkeit, das Aufrufen eines Ankers z.B. über das Adressfeld des Browsers direkt mit dem Ausführen einer javasript Funktion zu verbinden, so wie es das beim Aufrufen einer Seite mit OnLoad möglich ist?
Dann könnte man vielleicht eine Seite, die über das Ein- und Ausblenden von Inhalten organisiert ist(mit display:block/none)so einrichten, dass man sie dennoch mit dem Vor und Zurückbutton bedienen kann.
Besten Dank und Grüße
Hi,
gibt es eine Möglichkeit, das Aufrufen eines Ankers z.B. über das Adressfeld des Browsers direkt mit dem Ausführen einer javasript Funktion zu verbinden, so wie es das beim Aufrufen einer Seite mit OnLoad möglich ist?
Wenn der Browser bereits onhashchange unterstützt, dann sehr einfach.
Ansonsten müsste man das mit einem Intervall und Kontrolle des jeweils aktuellen Inhalts von location.hash selber implementieren.
Dann könnte man vielleicht eine Seite, die über das Ein- und Ausblenden von Inhalten organisiert ist(mit display:block/none)so einrichten, dass man sie dennoch mit dem Vor und Zurückbutton bedienen kann.
Das ist für stark auf AJAX basierende Seiten doch schon lange state-of-the-art.
MfG ChrisB
Moinsen!
http://de.selfhtml.org/javascript/objekte/document.htm#url@title=Javascript
@@blumentopf:
nuqneH
[…] das Aufrufen eines Ankers […]
Dann könnte man vielleicht eine Seite, die über das Ein- und Ausblenden von Inhalten organisiert ist(mit display:block/none)so einrichten, dass man sie dennoch mit dem Vor und Zurückbutton bedienen kann.
Ich glaube, du willst kein JavaScript, sondern die CSS-Pseudoklasse :target
verwenden.
http://bittersmann.de/samples/gallery-20090728/
http://forum.de.selfhtml.org/archiv/2009/7/t189183/#m1260327 ff.)
Qapla'
Hallo, und vielen Dank für die Hilfe, entschuldigt die späte Antwort, ich war die Tage dann doch vom Rest des Netzes abgeschnitten..
Ich glaube, du willst kein JavaScript, sondern die CSS-Pseudoklasse
:target
verwenden.
Vielen Dank für diesen Tipp, ich glaube, der hat mich echt weitergebracht.
Mein Versuchstext sieht so aus und funktioniert zumindest auf Safari und Firefox:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css">
div#inhalt1 {display:none}
div#inhalt1:target {display:block}
div#inhalt2 {display:none}
div#inhalt2:target {display:block}
</style>
</head>
<body>
<div id="inhalt1">Inhalt Eins</div>
<div id="inhalt2">Inhalt Zwei</div>
<div id="nix"></div>
<a href="#inhalt1" >zeige 1</a>
<a href="#inhalt2" >zeige 2</a>
<a href="#nix" >zeige nix</a>
</body>
Dieser kleine Test orientiert sich im Wesentlichen an diesem Text: http://meiert.com/de/publications/articles/20060119/
Ist das browser-übergreifend verlässlich einsetzbar, oder gibt es da Einschränkungen zu beachten?
Besten Dank und Grüße
@@blumentopf:
nuqneH
Ist das browser-übergreifend verlässlich einsetzbar, oder gibt es da Einschränkungen zu beachten?
Das sagte ich doch schon.
Qapla'
Das sagte ich doch schon.
Entschuldigung. Ich dachte, vielleicht sieht es mittlerweile besser aus.
Grüße
@@blumentopf:
nuqneH
Entschuldigung. Ich dachte, vielleicht sieht es mittlerweile besser aus.
Mittlerweile ist IE 8 immer noch der aktuellste IE (von Previews und Betaversionen abgesehen).
Auch IE 7 wird noch verwendet. Man munkelt, auch IE 6 noch.
Es soll sogar noch IE-5-Nutzer geben. Diese weisen durch den bestimmten Artikel vor ihrem Namen explizit auf ihre Sonderhaftigkeit hin. ;-)
Qapla'
Hallo.
Es soll sogar noch IE-5-Nutzer geben. Diese weisen durch den bestimmten Artikel vor ihrem Namen explizit auf ihre Sonderhaftigkeit hin. ;-)
Der kenne ich.
MfG, at
Sollte man dann einen Alternativtext für IE und Opera verfassen, oder einfach, wie in folgendem Beispiel, den JS Text quasi doppelt mit ausführen, und somit wenigstens einigen Nutzern den Vor- und Zurückbutton zuzugestehen, ohne die anderen völlig auszuschließen?
<head>
<script type="text/javascript">
function hideID(el) {
document.getElementById(el).style.display = "none";
function showID(el) {
document.getElementById(el).style.display = "block";
</script>
<style type="text/css">
div#inhalt1 {display:none}
div#inhalt1:target {display:block}
div#inhalt2 {display:none}
div#inhalt2:target {display:block}
</style>
</head>
<body>
<div id="inhalt1">Inhalt Eins</div>
<div id="inhalt2">Inhalt Zwei</div>
<div id="nix"></div>
<a href="#inhalt1" ><span onclick="showID('inhalt1');hideID('inhalt2');">zeige 1</span></a>
<a href="#inhalt2" ><span onclick="showID('inhalt2');hideID('inhalt1');">zeige 2</span>zeige 2</a>
<a href="#nix" >zeige nix</a>
</body>
@@blumentopf:
nuqneH
Sollte man dann einen Alternativtext für IE und Opera verfassen, oder einfach, wie in folgendem Beispiel, den JS Text quasi doppelt mit ausführen, und somit wenigstens einigen Nutzern den Vor- und Zurückbutton zuzugestehen, ohne die anderen völlig auszuschließen?
Auch das sagte ich schon.
Qapla'
Hallo,
vielleicht ist es ja etwas vermessen, wenn ich mit meinen geringen Kenntnissen immer viel zu komplizierte Sachen versuche, aber da rutsche ich eben irgendwie immer rein...
Ich habe jetzt einmal versucht, dein .js zu verstehen, werde aber wohl nicht so schnell dahin kommen, so etwas selbst zu konstruieren oder nachzubauen.
Ist das vorliegende JS in dieser Form einfach übertragbar und in anderen Zusammenhängen wie dem folgenden einsetzbar?
Ich würde, soweit ich glaube, den Code verstanden zu haben, ihn einfach wie er ist auf einer Seite einbauen, auf der ich zu vor wie in deinem Beispiel Elemente mit target einblende. Dann müsste ich in dem JavaScript lediglich bigpicture durch die ID des entsprechenden Überobjektes ersetzen, und dann würde beim Aufruf eines entsprechenden Browsers das Script dafür sorgen, dass die Elemente entsprechend dem gerade aufgerufenen Anker ein- und ausgeblendet werden.
Der Ankeraufruf müsste dann ja auch im Verlauf gespeichert sein, und somit das Ganze auch über Vor und zurück abrufbar.
Wäre das so etwa möglich, oder habe ich es falsch verstanden?