webForumDet fria alternativet

externa länkar

JavaScript

9 svar · 458 visningar · startad av apg29

Medlem sedan nov. 200584 inlägg
Frågan#1

Jag undrar helt enkelt om det finns ett litet smart script eller funktion som gör att alla externa länkar på en webbsida öppnas i ett nytt fönster? De interna länkarna ska öppnas som vanligt.

Ja, jag vet att man kan skriva target=_blank om man vill öppna i ett nytt fönster direkt i länken, men vad jag vill är att slippa göra det.

Finns det någon sådan funktion eller är jag ute och cyklar? :OO

Medlem sedan nov. 200584 inlägg
#2

Ingen som har något tips? :OO

Medlem sedan juni 20019 519 inlägg
#3

Hur ser dina länkar ut som länkar "internt"? är det alla href som börja med http, då är det inga direkta svårigheter kan jag tänka mig att göra så att den öppnar i ett nytt fönster.

Medlem sedan juni 2003771 inlägg
#4

Tja, du kan väl kolla detta då!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
function m_addLoadEvent(func) 
{ var oldOnload = window.onload;
  if (typeof window.onload != "function") {
    window.onload = func;}
  else {window.onload = function() {oldOnload();func(); }   }  }
function m_externalLinks() {
  if (typeof document.getElementsByTagName == "undefined") 
{return; }
  var anchors = document.getElementsByTagName("a");
  var mesg = "(this link opens in a new window)";
  for (var i = 0; i < anchors.length; i++) {
    var anchor = anchors[i];
    var rel = "" + anchor.getAttribute("rel");
    if ( typeof anchor.hostname != "undefined"
      && typeof anchor.protocol != "undefined"
      && anchor.protocol.indexOf("javascript") < 0
      && (    ( rel.length > 0
          && rel.indexOf("blank") >= 0
        ) || (  ( rel.length == 0
            || rel.indexOf("self") < 0
) && anchor.hostname != document.location.hostname
        )  )  ) { anchor.target = "_blank";
      if (typeof anchor.title != "undefined") {
        anchor.title = (anchor.title ? anchor.title + " " : "") + mesg;
      }
      else { anchor.title = mesg;  } } } }
m_addLoadEvent(m_externalLinks);
</script>
</head>
<body>
<a href="http://www.google.se">Google</a> Extern
<br><br>
<a href="http://www.yahoo.se">Yahoo</a> Extern
<br><br>
<a href="dinsida1.htm">Din egen sida 1 </a> Intern
<br><br>
<a href="dinsida2.htm">Din egen sida 2 </a> Intern
</body>
</html>
Medlem sedan mars 2004455 inlägg
#5

Kanske såhär:


<script type="text/javascript"> 

window.onload = function()
{
	for(i=0;i<document.links.length;i++)
		if(document.links[i].href.substr(0,7) == "http://" && document.links[i].href.toString().indexOf("minhemsida.se") < 0)
			document.links[i].target = "_blank";
}
	
</script>

Fungerar det?

Medlem sedan nov. 200584 inlägg
#6

Tack för de fina tipsen, bosse och yador. Ska kolla det dirrekt om det funkar. voigtann1: Såg inte din fråga förrän nu.

Medlem sedan nov. 200584 inlägg
#7

Det funkar! Av någon anledning så fastnade jag för yadors skript. Enkelt och smidigt och bra! Tack så mycket för hjälpen!

Medlem sedan dec. 20051 056 inlägg
#8

Nu missförstår jag säkert frågan men räcker det inte med:

<html>
<head>
<title></title>

[red]<base target="window2">[/red]

</head>
<body>
<li> <a href="http://mattiasNordin.net/web08/">Öppna denna länk i fönster 2</a>
<li> <a href="http://mattiasNordin.net/web08/">Öppna denna länk i fönster 2</a>
<li> <a href="http://mattiasNordin.net/web08/">Öppna denna länk i fönster 2</a>
</body>
</html>

RED: SORRY missade att det inte gällde alla länkar. / M

Medlem sedan juni 2003771 inlägg
#9

Kollade scripten ovan och tyvärr så funkar inget av de tre förslagen i Firefox.

Medlem sedan nov. 200584 inlägg
#10

yadors script funkade i Firefox 3.

253 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)