Avatar billede amarbanden Nybegynder
30. juni 2004 - 11:04 Der er 14 kommentarer og
2 løsninger

script der åbner ét link i to vinduer (frames)?

jeg har en side med flere links, så jeg kan ikke bruge onClick.
hvert link skal åbne to sider i hvert sit frame.
LINK1 skal åbne side1 i frame1 og side2 i frame2.
LINK2 skal åbne side3 i frame1 og side4 i frame2
og så fremdeles.
Findes det ultimative javascript?
Jeg kan ikke selv skrive javascript, men bruger eksisterende og redigerer i dem - når jeg kan finde ud af det ;-)

Et lille tillægsspørgsmål:
Da jeg er ny bruger, kender jeg ikke meget il pointsystemet.
da jeg bruget 100 p til dette spørgsmål (jeg synes nemlig at det er temmeligt svært), kan jeg så kun stille spørgsmål for 205 point mere?

Mvh. Jan
Avatar billede skovenborg Nybegynder
30. juni 2004 - 11:45 #1
du kan jo koble lidt javascript og almindelig html sammen:
<a href="side1.htm" target="frame1" onclick="parent.frame2.location.href='side2.htm';">LINK1</a>
<a href="side3.htm" target="frame1" onclick="parent.frame2.location.href='side4.htm';">LINK1</a>
Avatar billede schris Praktikant
30. juni 2004 - 12:20 #2
<script language=javascript>
function multilink(link1,link2) {
    window.parent.frames["rammenavn1"].location.href=link1;
    window.parent.frames["rammenavn2"].location.href=link2;
  }
</script>

Funktionen kaldes via <a href="#" onClick="multilink('side1.htm' , 'side2.htm');>
Avatar billede amarbanden Nybegynder
30. juni 2004 - 13:34 #3
skovenborg skriver:

<a href="bands/link_slide.html" target="slideshow" onclick="parent.mainFrame.location.href='bands/link2.html';">LINK2</a>

den er enkel og fungerer perfekt (besvarer mit spørgsmål 100%), men er alligevel ikke det ultimative javascript, da det kun kan styre 2 frames


schris skriver:

<script language=javascript>
function multilink(link1,link2) {
    window.parent.frames["mainFrame"].location.href=link1;
    window.parent.frames["slideshow"].location.href=link2;
  }
</script>

<a href="#" onClick="multilink('bands/kommer.html' , 'bands/link_slide.html');">link3</a>

det ligner det ultimative javascript, da det ser ud til at man bare kan indsætte en ny window.parent.frames["menuFrame"].location.href=link3;

der er bare det ved det at den kun virker med location.href=link1; og ignorerer window.parent.frames["slideshow"].location.href=link2;

min linkside ligger i roden og kommer.html, link_slide.html og link2.html ligger i mappen [bands] - mine frames hedder henholdsvis mainFrame, slideshow og menuFrame.

Så schris er det mig der har lavet en fejl eller mangler der noget i dit script?

jeg vil gerne tildele jer begge point (kan man dele dem op?), når fejlen er rettet.

På forhånd STOR tak til jer begge for de hurtige og brugbare svar.

Mvh. Jan
Avatar billede skovenborg Nybegynder
30. juni 2004 - 13:41 #4
for at dele skal jeg lige svare og så kan du trykke på advanceret et sted og dele pointene 50/50.

Angående mit script kan du også åbne flere links i flere forskellige frames, hvis du bare skriver:
<a href="bands/link_slide.html" target="slideshow" onclick="parent.mainFrame.location.href='bands/link2.html';parent.slideshow.location.href='bands/link_slide.html';">LINK2</a>

Det kan dog også godt være du skal skrive top.slideshow.location.href='bands/link_slide.html';" eller
top.frames['slideshow'].location.href='bands/link_slide.html';"
alt afhængigt af hvad du synes er bedst eller hvad der virker
Avatar billede amarbanden Nybegynder
30. juni 2004 - 13:59 #5
Perfekt skovenborg :-))))
Nu venter jeg bare på schris' svar så får I 50/50 point!

I mellemtiden, hva' med mit lille tillægsspørgsmål, som absolut ikke dtejer sig om javascript ;-)

Mvh. Jan
Avatar billede schris Praktikant
30. juni 2004 - 14:33 #6
mit script kan udvides i det uendelige jf. nedenstående:

<script language=javascript>
function multilink(link1,link2) {
    window.parent.frames["rammenavn1"].location.href=link1;
    window.parent.frames["rammenavn2"].location.href=link2;
    window.parent.frames["rammenavn2"].location.href=link3;
    window.parent.frames["rammenavn2"].location.href=link4;
  }
</script>

Funktionen kaldes via <a href="#" onClick="multilink('side1.htm' , 'side2.htm', 'side3.htm' , 'side4.htm');>


osv osv
Avatar billede schris Praktikant
30. juni 2004 - 14:38 #7
2. linie skal naturligvis rettes til

function multilink(link1,link2, link3,link4)
Avatar billede amarbanden Nybegynder
30. juni 2004 - 14:59 #8
Hej schris!
Det ser rigtigt og overskueligt ud. Men det virker bare ikke hos mig.

Mine frameset ser således ud:
INDEX:(index.html)
<frameset  cols="300,*" border="0">
    <frame name="slideshow" src="slideshow.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>
    <frame name="right_mainFrame" src="right_mainframe.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0">
</frameset>
INDEX2:(right_mainframe.html)
<frameset  rows="50,*,20" border="0">
    <frame name="menuFrame" src="menu.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>
    <frame name="mainFrame" src="start.html" marginwidth="0" marginheight="0" scrolling="auto" frameborder="0" noresize>
    <frame name="bottomFrame" src="bottom.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>
</frameset>

mine links ligger i mainFrame og jeg har skrevet som ovenfor:

<script language=javascript>
function multilink(link1,link2) {
    window.parent.frames["mainFrame"].location.href=link1;
    window.parent.frames["slideshow"].location.href=link2;
  }
</script>

<a href="#" onClick="multilink('bands/kommer.html' , 'bands/link_slide.html');">link3</a>

jeg kan ikke selv finde fejlen :-(
det skal lige siges at skovenborgs virker; måske kan det give et hint?

Mvh. Jan
Avatar billede skovenborg Nybegynder
30. juni 2004 - 17:06 #9
btw så kan du godt acceptere - schris har jo svaret fra starten af ;-)
Avatar billede roenving Novice
30. juni 2004 - 17:06 #10
Lav dine framesets i een fil:

INDEX:(index.html)
<frameset  cols="300,*" border="0">
    <frame name="slideshow" src="slideshow.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>
    <frameset  rows="50,*,20" border="0">
      <frame name="menuFrame" src="menu.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>
      <frame name="mainFrame" src="start.html" marginwidth="0" marginheight="0" scrolling="auto" frameborder="0" noresize>
      <frame name="bottomFrame" src="bottom.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>
  </frameset>
</frameset>
Avatar billede skovenborg Nybegynder
30. juni 2004 - 17:14 #11
du kunne måske også lave en multilink funktion på denne måde:
<script type="text/javascript">
  function multilink() {
        for (i=0;i<arguments.length;i+=2) {
              top.frames[arguments[i]].location.href = arguments[i+1];
        }
  }
</script>

<a href="java script:multilink('framenavn1','link1','framenavn2','link2','framenavn3','link3');">LINK</a>

Så du skiftevis i din funktion veksler mellem framenavnet og linknavnet.

Og så til dit tillægsspørgsmål:
Du kan højest udlove 200 point - denne grænse blev sat pga. en ren inflation af points på et tidspunkt. Så du kan altså kun til dette spørgsmål udlove 100 point mere (hvilket du dog ikke skal i dette tilfælde - 100 point er nok ;-)
Avatar billede amarbanden Nybegynder
30. juni 2004 - 21:13 #12
Hej skovenborg!
Hvad betyder btw? (det er ikke indelysende for mig - ingen klokke der ringer!)

Det er et meget, meget fint multilink du har lavet. Den eneste hage er, at det kun virker i ét sammensat frameset lavet i én fil, som roenving anbefaler; se nederst i et frameset hvor det virker!

m.h.t. at acceptere, er jeg bange for at lukke diskussionen. Og så skal jeg bare stille det samme spørgsmål igen - og det er jo besvaret ;-)

Det ser ud til at schris skriver fra arbejdet (sådan ser det ud rent tidsmæssigt) og jeg vil da lige give ham mulighed for at svare i morgen - men hans script virker ikke i mine to frameset's eller det sammensatte (nederst igen). Scriptet ser perfekt ud for mig (læs: mere forståeligt) i stedet for dit matematiske, som er rent russisk for mig - men href delen er dejlig nem og det er jo den vigtige for mig!
Jeg starter jo også med at sige at jeg ikke kan javascript!

Men bare rolig I skal nok få jeres point 50/50, hvis jeg får et fungerende script fra schris, ellers får du alle 100.

og

Hej roenving!

Framesettet skal nu se sådan ud for at virke: ;-)

<frameset rows="*,300,*" border="0">
    <frame><!-- tom -->
        <frameset rows="300,*" border="0">           
            <frameset cols="300,*" border="0">
                <frame name="slideshow" src="slideshow.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>
                    <frameset rows="50,*,20" border="0">
                        <frame name="menuFrame" src="menu.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>
                    <frame name="mainFrame" src="start.html" marginwidth="0" marginheight="0" scrolling="auto" frameborder="0" noresize>
                    <frame name="bottomFrame" src="bottom.html" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>
                    </frameset>                   
            </frameset>
        </frameset>
    <frame><!-- tom -->
</frameset>

og det er rigtigt, det er smatere, hvis altså ikke at jeg lige skulle bruge det første frameset til at køre en flash film i,  som et anslag til siden. Den kalder så det næste frameset - men det kunne du jo ikke vide.
Alligevel skal du have stor tak, for det satte mine tanker på det rigtige spor, for at få multilink til at virke.
Anslaget laver jeg så bare på én side i en tabel, og der kalder flash filen bare framesettet.

Jeg er utrolig positiv for hurtige og kvalificerede svar herinde fra, som sagt har jeg først opdaget eksperten.dk i dag (ellers har jeg brugt engelskskrivende sider, men der er nu engang mere forståeligt på dansk) og glæder mig meget til et fremtidigt samarbejde.

I må lige undskylde det sene svar, jeg skulle lige til lagkage og chokolade, og så skulle jeg lige prøve de forskellige nye svar og kommentarer af.

Mvh. Jan
Avatar billede skovenborg Nybegynder
30. juni 2004 - 21:36 #13
jamen velkommen til eksperten :-)

btw betyder by the way (sådan tolker jeg det i hvert fald ;-)

min seneste funktion var nu også mest for at vise hvordan man på en let måde kunne lave det link du gerne ville bruge. Men schris's mulighed er jo ligeså god - især hvis du selv kan finde ud af at bruge den.
Og med hensyn til pointene så synes jeg bare du skal fordele dem 50/50 ligemeget hvad - så kan ingen (udover roenving ;-) komme og brokke sig bagefter. Bare du ikke snupper dem selv, så burde det være i orden. Men du lærer nok også lidt hen ad vejen ;-)

Og så som det sidste kan jeg sige du ikke skal være så bange for at acceptere for tidligt - det er ikke altid sådan at folk bare smutter efter svaret er accepteret, hvis du stadig har lidt bøvl med den løsning du har fået. Og hvis ikke, sker der vel heller ikke så meget ved at stille et spørgsmål til (måske med lidt mindre points udlovet, hvis du begynder at løbe tør).
Avatar billede skovenborg Nybegynder
30. juni 2004 - 21:47 #14
og så med hensyn til schris's forslag (nu går vi lige umiddelbart ud fra dit oprindelige frameset), så kan det være det der ikke virker er at der skulle stå top i stedet for parent når du finder slideshow framen:
function multilink(link1,link2) {
    window.parent.frames["mainFrame"].location.href=link1;
    window.top.frames["slideshow"].location.href=link2;
  }
Sådan gjorde jeg vist også i den løsning som du kunne få til at virke. Her skal du bare huske at top henviser til den øverste (topmost som det hedder på engelsk) frame og parent henviser til framen (eller her framesettet), som ligger framen du kalder funktionen fra umiddelbart ligger indeni - hvis det var meget mere forståeligt ;-)
Avatar billede amarbanden Nybegynder
01. juli 2004 - 15:06 #15
Nå, nu har jeg ikke hørt fra scris hele dagen.
Så jeg gør som du siger skovenborg og giver jer 50/50.
Det er sikkert mig der alligevel ikke rigtigt forstår scris script - jeg må jo prøve at eksperimentere lidt (nogle gange går det faktisk godt ;-)

Mvh. Jan
og stor tak for hjælpen
Avatar billede skovenborg Nybegynder
01. juli 2004 - 15:53 #16
og 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