Archivlink: javarea.de Forum > JavaScript > SetLinkTarget-Script (Unterscheidung eigner Links)
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > SetLinkTarget-Script (Unterscheidung eigner Links)

Pages: [1] 2 ... nächste » ... Letzte »

geschrieben von derSteffen am 06.09.2007 - 20:23

geschrieben von Micha am 06.09.2007 - 22:13
Hi,

ungetestet und nur als Anregung:

HTML-Quelltext
1: 
2: 
3: 
for(var i=0; i < document.links.length; ++i)
  if (document.links[i].href.indexOf( window.location.hostname ) != -1)
    document.links[i].target=ziel;


Micha

geschrieben von derSteffen am 06.09.2007 - 22:57
Hallo Micha,

danke für den Code. Es wird zwar keine Fehler ausgerufen und die Fehler-Konsole im Firefox sagt auch nichts aber die Abfrage wird ignoriert.

Vielleicht muss man ja die erste Abfrage if (document.getElementById('Formular').Abfrage.checked == true) {
ziel="_blank"
}
noch eingrenzen, indem man sagt wenn Hacken gesetzt und Link enthält nicht, z.B. localhost/iche/.

Weil die Abfrage von Dir scheint ja zu funktionieren, aber vielleicht überschreibt die erste Abfrageja die zweite.

Wenn ich window.location.hostname durch mein localhost/iche/ wird ein Syntaxfehler ausgerufen :-(




geschrieben von Micha am 07.09.2007 - 06:59
Hi,

Du solltest es ja nur als Anregung nutzen. Nun habe ich es doch probiert:

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
function setTarget() {

for(var i=0; i < document.links.length; ++i)
	if (document.links[i].href.indexOf( "http://localhost/" ) == -1 && document.getElementById('Formular').Abfrage.checked)
		document.links[i].target="_blank";
	else
		document.links[i].target="_self";
}


Viel Spaß damit
Micha

geschrieben von derSteffen am 07.09.2007 - 07:47
Oahh - super. Es hat funktioniert. Das hätte ich nicht hinbekommen :-( Vielen, vielen Dank.

MfG Steffen

geschrieben von derSteffen am 15.11.2007 - 19:23
Hallo,

ich versuche krampfhaft noch einen weiteren Wert für die indexOf zu definieren. Es sollen nämlich auch keine JavaScript-Links in neuem Fenster geöffnet werden. Ich habe schon alles versucht, z.B. mit Schleifen.

Es gibt doch eine Möglichkeit in Javascript auch else if zu verwenden, richtig?

Gibt es denn auch ein Befehl "ODER" in Javascript?

Wäre schön wenn mir jeman helfen könnte.

Dieser Versuch hat leider auch nichts gebracht

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
for(var i=0; i < document.links.length; ++i)
	if (document.links[i].href.indexOf( "http://localhost/" ) == -1 && document.getElementById('FormularTarget').Abfrage.checked)
	document.links[i].target="_blank";
	else if (document.links[i].href.indexOf( "javascript" ) == -1 && document.getElementById('FormularTarget').Abfrage.checked)
		document.links[i].target="_blank";
	else
		document.links[i].target="_self";
}


Danke

geschrieben von Micha am 15.11.2007 - 22:53
Hi,

ja, es gibt else if und auch ODER geht - siehe Operatoren in JavaScript.

Micha

geschrieben von derSteffen am 16.11.2007 - 22:19

geschrieben von Micha am 17.11.2007 - 01:19

geschrieben von derSteffen am 18.11.2007 - 13:14

geschrieben von Micha am 18.11.2007 - 15:02
Hi,

Deine If-Bedingung scheint mir richtig zu sein. Lass Dir doch mit ALERT() mal ausgeben, was wirklich ankommt.

Micha

geschrieben von derSteffen am 18.11.2007 - 19:19
Also die Fehlerkonsole vom Firefox sagt auch nichts!

Also einzeln funktioniert es, aber leider nicht als ODER-Abfrage:

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
function setTarget() {

for(var i=0; i < document.links.length; ++i)
	if (document.links[i].href.indexOf( "javascript" ) == -1 && document.getElementById('FormularTarget').Abfrage.checked)
		document.links[i].target="_blank";
	else
		document.links[i].target="_self";
}


Wäre eventuelle eine else if Abfrage doch besser?

geschrieben von Micha am 18.11.2007 - 20:18

geschrieben von derSteffen am 19.11.2007 - 07:56
Hallo Micha,

wenn ich deine If, Else If, Else Abfrage verwende wird leider ebenfals jeder Link in einem neuen Fenster geöffnete :-(

Ich habe ausch schon versucht in dem onClick des Formulars beide Funktionen unterzubringen, nach der Art setTarget(); setTarget2() klappt natürlich auch nicht.

Hier ist noch einmal mein HTML-Code:

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" >
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<script type="text/javascript" src="js/scripte.js"></script> 
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" />

</head>
 <body onload="setTarget()">  
 <form id="FormularTarget" action="Abfrage">

<fieldset><legend>Linkverhalten</legend><input name="Abfrage" checked="checked" class="neutral" onclick="setTarget();" type="checkbox" id="linkverhalten" /><label for="linkverhalten">Links in neuem Fenster &ouml;ffnen</label>
</fieldset></form> 
               <p>Hier finden Sie eine Auswahl interessanter Links:</p><p><a class="externallink" href="http://www.google.de">www.google.de</a> <br /><a class="externallink" href="http://www.heise.de">www.heise.de</a> <br /></p>               
               
                <fieldset><label for="searchterm">Go</label><legend>Go</legend>

<form method="post" action="front_content.php?idcat=18" id="formsearch">
<p>
<input type="text" name="searchterm" id="searchterm" onfocus="if(this.value=='Suche nach')this.value='';" onblur="if(this.value=='')this.value='Suche nach';" value="Suche nach"/> <a href="javascript:document.forms['formsearch'].submit();" title="Go"><img src="images/los_pfeil.gif" alt="" /></a>
</p></form>

</body>
</html>

geschrieben von Micha am 19.11.2007 - 13:26


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.