sziasztok!
szeretnék segítséget kérni a szkriptemhez. egy weboldalon a külső linkeket akartam új ablakban megnyitni úgy, hogy a linkek alapján szűröm mi is számít külsőnek és mi nem.
egyetlen oldal megadásával sikerült, amit a kulsolink function be is mutat, de szeretném egy tömb segítségével bővíteni a listát. nem tudom, hogyan rontottam el a tömbös function-t. kösz előre is!
- 1342 megtekintés
Hozzászólások
getElementsByTagName
helyett (ha már az egész dokumentumot vizsgálod),
akkor
document.links
is jó lehet.
Nálam a következővel az index.hu-s linkek saját ablakban, a többi _blank-ben nyílik:
function Ujablak()
{
var belsolinkek = ["index.hu", "www.index.hu"]; //ami ne nyiljon meg uj ablakban
var linkek = document.links;
for (var i=0; i<linkek.length; i++)
{
var link = linkek[i].hostname;
for (var j=0; j<belsolinkek.length; j++)
{
var belsolink = belsolinkek[j];
if (link.search(belsolink) != 0)
{
link.target = "_blank";
}
}
}
}
HTH.
--
A gyors gondolat többet ér, mint a gyors mozdulat.
- A hozzászóláshoz be kell jelentkezni
köszi, de nekem nem működik. ha jól látom neked azért igen, mert benthagyhattad a másik function-t ami alatta van és példaként írtam, hogy az legalább működik. akár jó is lehetne, ha nincs benne index.hu sehol akkor nyit új ablakot, de máshogy szeretném megoldani. azt a szkriptet megbonyolítva elérhetném, hogy úgy működjön ahogy akarom, jelen esetben csak az index.hu és www.index.hu kezdetű linkek maradnak a saját ablakban, de szebb lenne az egész ha valahogy tömbösen tudnám megoldani, és nem értem miért nem megy.
szóval az lenne a cél hogy a 2. pontosan úgy működjön mint az 1.
módosítottam, látható a példa: http://pastebin.com/m46b99535
- A hozzászóláshoz be kell jelentkezni
Hát nem tudom...
próbáld meg ezt:
function kulsolink()
{
var targetSelf = new Array("index.hu", "pecs.index.hu"); //Azok a linkek, amik _self-ben nyílnak
var pageLinks = document.links;
for (var i=0; i<pageLinks.length; i++)
{
var currLink = pageLinks[i];
for (var j=0; j<targetSelf.length; j++)
{
var currFilter = new RegExp(currLink.hostname, "i"); //Minden belső linket (targetSelf) illesztünk az oldalon levőkre (pageLinks)
if( !currFilter.test(currLink) ) //ha nem illeszkedik egyik sem, akkor külső link -> taget _blank
{
currLink.target = "_blank";
}
else
{
currLink.target = "_self";
}
}
}
}
--
A gyors gondolat többet ér, mint a gyors mozdulat.
- A hozzászóláshoz be kell jelentkezni
megvan, rossz volt a logikám, mert ha végigellenőrzöm a tömbben található összes linkkel a hostname-t akkor egyszer biztos nem fog egyezni. módosítottam, és így egyszerűen felsorolhatom a tömbben a linkeket.
- A hozzászóláshoz be kell jelentkezni