Parameter automatisch anhängen
Twilo
- javascript
Hallo,
ich hab mir eine Funktion gebastelt, mit der ich noch einige Probleme habe :(
function TEST() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName('a');
ref = location.href;
if (ref.indexOf('?') == -1) return;
qs = ref.substr(ref.indexOf('?')+1);
qsa = qs.split('&');
var suche = 'undefined';
for (i=0;i<qsa.length;i++) {
qsip = qsa[i].split('=');
if (qsip.length == 1) continue;
if (qsip[0] == 'q' || qsip[0] == 'p') {
suche = qsip[1];
break;
}
}
if (suche != 'undefined'){
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.href.indexOf('#') >= 1) continue;
if (anchor.href.indexOf('?') == -1) anchor.href = anchor.getAttribute('href')+'?q='+suche;
else anchor.href = anchor.getAttribute('href')+'&q='+suche;
}
}
}
meine Probleme ;)
1. ein Link, wo nur "#top" drin steht, wird zu "?q=SUCHWORT#top"
ich habe schon versucht die Umschreibung mittels "if (anchor.href.indexOf('#') >= 1) continue;" zu verhindern, leider bewirkt das gar nichts
2. wie kann ich die Übergabe bei externen Link verhindern?
da bräuchte ich mal einen kleinen Tipp :-)
kann man die Funktion irgendwie kürzen?!
das ganze wird mittels window.onload = TEST;
aufgerufen
mfg
Twilo
Hallo,
- ein Link, wo nur "#top" drin steht, wird zu "?q=SUCHWORT#top"
<a href="#top"> wird zu <a href="?q=SUCHWORT#top">? Das kann ich nicht nachvolziehen.
ich habe schon versucht die Umschreibung mittels "if (anchor.href.indexOf('#') >= 1) continue;" zu verhindern, leider bewirkt das gar nichts
Das funktioniert bei mir in allen Browsern, mit denen ich teste. Mit welchem Browser testest du?
- wie kann ich die Übergabe bei externen Link verhindern?
Eine Möglichkeit: Bei einem externen Link unterscheidet sich anchor.hostname von location.hostname.
http://de.selfhtml.org/javascript/objekte/links.htm#location
kann man die Funktion irgendwie kürzen?!
Soweit ich das sehe nicht.
Mathias
Hallo,
- ein Link, wo nur "#top" drin steht, wird zu "?q=SUCHWORT#top"
<a href="#top"> wird zu <a href="?q=SUCHWORT#top">? Das kann ich nicht nachvolziehen.
ich habe schon versucht die Umschreibung mittels "if (anchor.href.indexOf('#') >= 1) continue;" zu verhindern, leider bewirkt das gar nichts
Das funktioniert bei mir in allen Browsern, mit denen ich teste. Mit welchem Browser testest du?
mit Opera 9.0, Internet Explorer 6 und Firefox 1.0.7
alle 3 hängen bei mir ein ?q=SUCHWORT ran
- wie kann ich die Übergabe bei externen Link verhindern?
Eine Möglichkeit: Bei einem externen Link unterscheidet sich anchor.hostname von location.hostname.
http://de.selfhtml.org/javascript/objekte/links.htm#location
danke, das werd ich mir nachher mal anschauen
mfg
Twilo
Hallo,
- ein Link, wo nur "#top" drin steht, wird zu "?q=SUCHWORT#top"
<a href="#top"> wird zu <a href="?q=SUCHWORT#top">? Das kann ich nicht nachvolziehen.
ich habe schon versucht die Umschreibung mittels "if (anchor.href.indexOf('#') >= 1) continue;" zu verhindern, leider bewirkt das gar nichts
Das funktioniert bei mir in allen Browsern, mit denen ich teste. Mit welchem Browser testest du?
mit Opera 9.0, Internet Explorer 6 und Firefox 1.0.7
alle 3 hängen bei mir ein ?q=SUCHWORT ran
ich hab ganz übersehen, dass der Originallink ja schon ein ?q=xyz hatte ;-)
bevor ich die eine Zeile eingefügt hatte, sah es ja so aus "?q=SUCHWORT#top?q=SUCHWORT"
mfg
Twilo
Hallo,
- wie kann ich die Übergabe bei externen Link verhindern?
Eine Möglichkeit: Bei einem externen Link unterscheidet sich anchor.hostname von location.hostname.
http://de.selfhtml.org/javascript/objekte/links.htm#location
hab die 20. Zeile jetzt so abgeändert
if (anchor.href.indexOf('#') >= 1 || anchor.hostname != location.hostname) continue;
es scheint zu funktionieren :)
thx!
mfg
Twilo