Mit Javascript und Text

son gohan

Erfahrenes Mitglied
Hallo Lieber Leser,

wenn Javascript aktiviert ist im Browser soll im folgenden Linkt "?p=p1" nicht stehen bleiben:

Code:
<a href="?p=p1#">

wenn Javascript jedoch deaktiviert ist im Browser soll es stehen bleiben.

Ist sowas möglich? Ich dachte mir das Javascript am besten versucht den Text ?p=p1 zu löschen mit seinen Möglichkeiten, und falls es deaktiviert ist, bleibt der text ?p=p1 einfach so stehen.

Alle anderen Lösungen, "<noscript>" Tags usw. danke für den Hinweis, aber ist hier nicht angebracht.

Schönen Gruß
Son Gohan Denki Dama, Kame Hame Ha.
 
Warum soll denn bei aktiviertem JS der URL bzw. darin der Anker "#" nicht enthalten sein?

mfg Maik
 
Ohne jetzt die genauen Hintergründe zu kennen, vermute ich mal, dass die Lösung für dein Problem ein einfaches "return false;" im onclick ist:

HTML:
<a href="?p=p1" onclick="beispielfunktion(); return false;">Tu was</a>

Ansonsten kannst du einfach in allen Links das href-Attribut leer setzen:
Javascript:
window.onload = function() {
    for(i=0; obj = document.getElementsByTagName('a')[i]; ++i) {
        obj.setAttribute('href','');
    }
}
Wenn kein JS aktiviert ist, bleibt alles so, ansonsten wird das Script ausgeführt und die href-Attribute gelöscht.
 
Zuletzt bearbeitet:
Warum soll denn bei aktiviertem JS der URL bzw. darin der Anker "#" nicht enthalten sein?

mfg Maik

Das liegt daran, wenn Javascript eingeschaltet ist, will ich das die CSS Eigenschaften auch mit Javascript für mein Tooltip geändert werden und wenn jemand auf das HTML "a" Tag klickt soll die Seite nicht neugeladen werden, ist aber das Fragezeichen "?" mit den PHP Parametern noch im "href" Attribut wird die Seite neugeladen, das soll aber nicht passieren, wenn Javascript es löschen kann wäre das ganz gut.


Und wenn Javascript nicht aktiviert ist im Browser, sollte theoretisch gesehen das Fragezeichen mit den PHP Parametern im "href" Attriut stehen bleiben weil es nicht gelöscht werden konnte vom Javascript und wenn jemand nun auf den Link drauf klickt würde die Seite neu geladen und über PHP würden die CSS Eigenschaften beim neuladen geändert.

Ohne jetzt die genauen Hintergründe zu kennen, vermute ich mal, dass die Lösung für dein Problem ein einfaches "return false;" im onclick ist:

HTML:
<a href="?p=p1" onclick="beispielfunktion(); return false;">Tu was</a>

Ansonsten kannst du einfach in allen Links das href-Attribut leer setzen:
Javascript:
window.onload = function() {
    for(i=0; obj = document.getElementsByTagName('a')[i]; ++i) {
        obj.setAttribute('href','');
    }
}
Wenn kein JS aktiviert ist, bleibt alles so, ansonsten wird das Script ausgeführt und die href-Attribute gelöscht.


Hi, das sieht gut aus, vielen vielen Dank für dein Fachwissen!

Ich muss es mal testen ob es klappt.

Der Grund wozu ich das brauche habe ich gerade oben dem Maik geschrieben.

Danke für die Hilfe und schönen Tag noch.
 
Dann bist du, wie von con-f-use vorgeschlagen, mit

Code:
<a href="?p=p1" onclick="return false;">Tu was<!-- Hier folgt dein CSS-Tooltip --></a>
oder auch
Code:
<a href="#" onclick="return false;">Tu was<!-- Hier folgt dein CSS-Tooltip --></a>

bestens bedient, damit beim Klick auf den Link zum Öffnen des Tooltips, die Seite nicht neu geladen wird.

mfg Maik
 
Die Javascript Funktion zum CSS wechseln steht oben im <head> und die CSS stehen auch dort:

Code:
<script language="JavaScript" type="text/JavaScript">
<!--
function setCSS () {
document.getElementById('hintergrund').className="hintergrundrot";
}
//-->
</script>

Code:
<style type="text/css">
<!--
.hintergrundrot
{
	display:block;
  background:#FF0000;
}

.hintergrundgruen
{
	display:block;
  background:#00FF00;
}
-->
</style>


Nun ist Javascript aktiviert in meinem Browser aber unten im Link:

Code:
<a href="?pp=p#" onclick="setCSS() return false;" class="hintergrundgruen" id="hintergrund">Link</a>

sind die Parameter "?pp=p" noch im "href" Attribut enthalten. Wenn ich drauf klicke wird die Seite Neugeladen, sollte aber nicht passieren wenn Javascript aktiviert ist sollten die Parameter "?pp=p" rausgelöscht werden, nur das Rautezeichen "#" sollte stehen bleiben im "href" Attribut bei aktivierten Javascript.

Wenn auch das Rautezeichen "#" nicht mehr im "href" Attribut drine steht funktioniert auch das Javascript "oncklick" nicht mehr und wenn die Parameter "?p=pp" noch mit drine stehen im "href" Attribut haben wir das problem das der Browser die Seite unnötig neu lädt.

Mach ich irgendetwas falsch oder muss ich was anderes benutzen?
 
Zuletzt bearbeitet:
Beim Überfliegen des Codes sticht mir hier das fehlende Semikolon ins Auge:

Code:
onclick="setCSS(); return false;"


Wie sich bei aktiviertem JS der URL aus dem href-Attribut löschen lässt, hat dir con-f-use doch mit seinem zweiten Code-Beispiel gezeigt und erläutert.

mfg Maik
 
Beim Überfliegen des Codes sticht hier das fehlende Semikolon ins Auge:

Code:
onclick="setCSS(); return false;"


Wie sich bei aktiviertem JS der URL aus dem href-Attribut löschen lässt, hat dir con-f-use doch mit seinem zweiten Code-Beispiel gezeigt und erläutert.

mfg Maik

Das ist wirklich Bemerkenswert wie schnell eine neutrale Person Fehler auffindet wozu man selbst nicht mehr in der Lage ist.

Nach meinen Test gerade funktioniert es nun wenn ich die fehlenden Semikolons noch dran hefte.

Ich denke somit hat sich das problem dann nun gelöst.

Ich lass noch heute etwas über DOM Modelle und Javascript, dass nicht alle Browser das gleiche Javascript immer verstehen und das man es gegebenfalls an jeden Browser anpassen müsste, und frage mich ob dieses Javascript aber in allen browsern universell einsetzbar ist?

ich hoffe das ist nicht so schlimm wie beim CSS und verschiedenen Browsern die es nicht gleich verstehen.
 

Neue Beiträge

Zurück