Avatar billede flol Nybegynder
26. februar 2008 - 18:35 Der er 10 kommentarer og
1 løsning

Åbning af link i iframe ?

Hej
Prøver at lave et script der åbner alle links i en iframe.
Men koden gider ikke virke, måske i kunne hjælpe?
hvad gør jeg forkert?

<html>
<head>
<script>
function openAllLinks() {
    var frame = parent.frames[0].document;
    var links = frame.getElementsByTagName('a');
    for (var i=0; i<links.length; ++i) {
        var anchor = links[i];
        window.open(anchor.href,"newWin" + num++);
    }
}
window.onload = openAllLinks;
</script>
</head>
<body>
    <iframe src="test2.htm" frameborder="0" width="800" height="157"></iframe>
</body>
</html>
Avatar billede w13 Novice
26. februar 2008 - 19:21 #1
Koden "parent.frames[0].document" gør, at du går ud på parent-siden fra din hovedside og ind i første frames dokument..

Prøv at bruge:
--------------------------------
<html>
<head>
<script>
function openAllLinks(){
    var frame=document.getElementsByTagName("iframe")[0];
    var links=frame.getElementsByTagName("a");
    for (var i=0;i<links.length;++i){
        var anchor=links[i];
        window.open(anchor.href,"newWin"+num++)
    }
}
window.onload=openAllLinks()
</script>
</head>
<body>
    <iframe src="test2.htm" frameborder="0" width="800" height="157"></iframe>
</body>
</html>
Avatar billede flol Nybegynder
26. februar 2008 - 19:32 #2
Hmm, nej det hjalp ikke så meget :/
den gør stadig ingen ting
Avatar billede w13 Novice
26. februar 2008 - 19:48 #3
Den giver dig vel i det mindste en javascriptfejlmeddelelse?

Kan jeg se siden?
Avatar billede w13 Novice
26. februar 2008 - 19:49 #4
Det bør i øvrigt være:
-------------------------
<html>
<head>
<script type="text/javascript" language="javascript">
function openAllLinks(){
    var frame=document.getElementsByTagName("iframe")[0];
    var links=frame.getElementsByTagName("a");
    for (var i=num=0;i<links.length;++i){
        var anchor=links[i];
        window.open(anchor.href,"newWin"+num++)
    }
}
window.onload=openAllLinks()
</script>
</head>
<body>
    <iframe src="test2.htm" frameborder="0" width="800" height="157"></iframe>
</body>
</html>
------------------------------
Og så må du aldrig glemme en doctype på dine dokumenter.
Avatar billede flol Nybegynder
26. februar 2008 - 19:52 #5
virker heller ikke..?

Der kommer ingen fejl men den gør heller ingen ting
Avatar billede w13 Novice
26. februar 2008 - 20:06 #6
Så må vi jo debugge. Hvad siger følgende kode:

<html>
<head>
<script type="text/javascript" language="javascript">
function openAllLinks(){
    var frame=document.getElementsByTagName("iframe")[0];
    var links=frame.getElementsByTagName("a");
    alert(frame+"_"+links+"_"+links.length);
    for (var i=num=0;i<links.length;++i){
        var anchor=links[i];
        window.open(anchor.href,"newWin"+num++)
    }
}
window.onload=openAllLinks()
</script>
</head>
<body>
    <iframe src="test2.htm" frameborder="0" width="800" height="157"></iframe>
</body>
</html>
Avatar billede thesurfer Nybegynder
26. februar 2008 - 20:58 #7
w13> Du skal have fat i iframen document:

frame.document.getElementsByTagName("a");


flol> Husk:
Hvis iframens src er en ekstern kilde (f.eks. http://www.EnEllerAndenServer.dk/fil.htm) så kan du ikke aflæse iframens document, og så kan du heller ikke få fat på linksne i iframen..
Avatar billede w13 Novice
26. februar 2008 - 21:03 #8
Nå ja, selvfølgelig! Og for ekstra browserkompatibilitet kan man sætte contentWindow på også:

<html>
<head>
<script type="text/javascript" language="javascript">
function openAllLinks(){
    var links=document.getElementsByTagName("iframe")[0].contentWindow.document.getElementsByTagName("a");
    for (var i=num=0;i<links.length;++i){
        var anchor=links[i];
        window.open(anchor.href,"newWin"+num++)
    }
}
window.onload=openAllLinks()
</script>
</head>
<body>
    <iframe src="test2.htm" frameborder="0" width="800" height="157"></iframe>
</body>
</html>
Avatar billede olebole Juniormester
26. februar 2008 - 21:24 #9
<ole>

Hvorfor skriver du ikke bare et target i dine links?
    <a href="side.html" target="NAVN_PÅ_IFRAME">Link</a>

/mvh
</bole>
Avatar billede olebole Juniormester
26. februar 2008 - 21:26 #10
- sorry ... havde ikke læst spørgsmålet ordentligt  :)
Avatar billede w13 Novice
04. december 2008 - 18:32 #11
Tak for points! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester