echte href ophalen

Status
Niet open voor verdere reacties.

ecross

Gebruiker
Lid geworden
4 mrt 2009
Berichten
638
hallo allemaal,

ik heb het volgende stukje code, waarmee ik wil dat alle links waarvan de href begint met http:// in een nieuwe pagina opend
[JS]window.onload = function() {
if (!document.getElementsByTagName) return false;
var links = document.getElementsByTagName("a");
for (var i=0; i<links.length; i++) {
if (links.href.match("http:\/\/.*")) {
links.onclick = function() {
return !window.open(this.href);
}
}
}
}[/JS]
alleen nu blijkt dat hij alle links in een nieuwe pagina opend, als ik dan het volgende stukje code uitvoer:
[JS]document.write(document.getElementById("contactlink").href.match("http:\/\/.*"));[/JS]
krijg ik:
terwijl de href gewoon contact.php is.

hoe kan ik de echte href ophalen?
ecross.
 
Hoi

Dit komt omdat hij redeneert vanuit de site root. Wat je zou kunnen doen is het gedeelte "http://www.ecross.nl/" verwijderen d.m.v. de Remove function van javascript.
 
dat zou inderdaad kunnen, maar ik wil graag weten of de echte href begint met http:// want dat betekend dat het een externe link is en dat hij in een nieuw tabblad moet worden geopend.
 
Matthijs kwam in de buurt. Ik denk dat het komt omdat je[JS]xxx.href[/JS]gebruikt; het is dan al door Javascript geparsed. Wat jij wilt is gewoon de string die in de HTML staat. Daarvoor is[JS]xxx.getAttribute('naam');[/JS]--->[JS]window.onload = function()
{
if(!document.getElementsByTagName)
{
return false; /* alle browsers kunnen dit toch wel tegenwoordig? */
}

var i, links = document.getElementsByTagName("a");
var len = links.length;

for(i=0; i<len; i++)
{
if(links.getAttribute('href').match("http:\/\/.*"))
{
links.onclick = function()
{
return !window.open(this.getAttribute('href'));
/* in principe kon deze WEL via xxx.href maargoed */
}
}
}
}[/JS]

:thumb:
 
jaa dat bedoel ik,

ik heb nog even een check toegevoegd of er een href attribuut aanwezig is, ik heb namelijk ook A tags met alleen een name (een anchor)

de code word dan:
[JS]

window.onload = function()
{
if(!document.getElementsByTagName)
{
return false; /* alle browsers kunnen dit toch wel tegenwoordig? */
}

var i, links = document.getElementsByTagName("a");
var len = links.length;

for(i=0; i<len; i++)
{
if(links.getAttribute('href') && links.getAttribute('href').match("http:\/\/.*"))
{
links.onclick = function()
{
return !window.open(this.getAttribute('href'));
/* in principe kon deze WEL via xxx.href maargoed */
}
}
}
}
[/JS]

nog maals bedankt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan