Avatar billede anne-m Nybegynder
04. maj 2004 - 16:22 Der er 14 kommentarer og
1 løsning

on click i popup2 vises billede i popup1

Hej.
Jeg kunne godt tænke mig at jeg fra et popup vindue kunne vise et billede i et andet popup vindue. Jeg har koden til det - men jeg kan ikke få det til at virke. (fordi jeg ikke kan finde ud af at sætte de rigtige henvisninger ind...)
(Roenving har tidligere forsøgt at vise mig det... men jeg fandt ikke ud af det...)

pop1 = window.open("","pop1","");
pop2 = window.open("","pop2","");
-- og så skal dine funktioner i pop1 kalde:
<img src="" onclick="opener.pop1.document.images['visBillede'].src = this.src;">
-- og img i pop1 skal have name="visBillede"

Billedet skal ikke vises før linket klikkes - hvordan kan billedet være skjult i pop1 ? og jeg vil gerne efterfølgende have flere billeder til at vises samme sted. Er det et problem?
(skal man bruge layers - noget med hidden eller visible...?)

Det er desuden linje jeg ikke helt kan finde ud af:
<img src="" onclick="opener.pop1.document.images['visBillede'].src = this.src;">
Hvad skal der stå i stedet for "this.src" stien på billedet?

;o) jep - jeg er ikke god til koder.

så hvis nogen i bedste pædagogiske stil gider at forklare mig det... ?
Avatar billede roenving Novice
04. maj 2004 - 16:27 #1
Måske er det bare:

<img src="etBillede.jpg" onclick="opener.pop2.document.images['visBillede'].src = this.src;">

-- this.src vil så være lig med "etBillede.jpg" ...
Avatar billede anne-m Nybegynder
04. maj 2004 - 16:51 #2
hmmm... jæ ka ik få ét te å virk! :o/

hvis vi siger at jeg gerne vil have billedet portfolio.gif til vise sig i pop1:
    <img src="billeder/menubillede.gif" onclick="opener.pop2.document.images['visBillede'].src = portfolio.gif;">
- virker ikke.

Heller ikke:
    <img src="billeder/menubillede.gif" onclick="opener.pop2.document.images['visBillede'].src = this.src;">
virker...
Der sker ingenting.
Hvor skal jeg gøre af det billede der hedder visBillede... du skriver "-- og img i pop1 skal have name="visBillede"" – skal je hente billede ind i pop1??? så er det der jo hele tiden...? ;o/
Avatar billede anne-m Nybegynder
04. maj 2004 - 16:51 #3
je =jeg
Avatar billede roenving Novice
04. maj 2004 - 21:11 #4
<img src="billeder/menubillede.gif" onclick="opener.pop1.document.images['visBillede'].src = 'portfolio.gif';">
Avatar billede olebole Juniormester
04. maj 2004 - 21:25 #5
<ole>

Pas på ... for der er en lille faldgrubbe. Det, der sker, når der klikkes på 'menubillede.gif', er følgende:

  <img src="billeder/menubillede.gif" onclick="opener.pop1.document.images['visBillede'].src = 'portfolio.gif';">

1. Vi går tilbage til åbner-vinduet ('opener' refererer til det vindue, der har åbnet popup'en)
2. Vi finder - i dette vindue - en variabel, der hedder 'pop1'. I denne variabel har vi nemlig lagt en reference til et andet popup-vindue.
3. Vi skifter source på et billede i dette popup-vindues dokument med:
    document.images['visBillede'].src = 'portfolio.gif';

For at dette kan lade sig gøre, skal variablen 'pop1' være globalt erklæret. Det vil sige, at der _uden for alle funktioner_ skal stå:
  var pop1;

Derefter kan du tilknytte en reference til et popup-vindue ... f.eks. i en funktion:

function myOpen() {
  pop1 = window.open( ... ... ... );
}

Så kan JavaScript 'se' variablen alle steder fra. Variablen er erklæret globalt.
Skriver du derimod:

function myOpen() {
  var pop1 = window.open( ... ... ... );
}

Kan JavaScript kun 'se' variablen indenfor funktionen. Variablen er erklæret lokalt.

Håber, det kan hjælpe lidt på forståelsen  :)

/mvh
</bole>
Avatar billede anne-m Nybegynder
05. maj 2004 - 09:24 #6
ole ----> det er vel nok skønt når man føler at man lærer noget ;o) tak for uddybelsen.
Så skal jeg jo skrive:
var pop1;

Det forklarer vel også hvorfor jeg ikke kan få flere links til at åbne i pop up vinduet - jeg har jo det her stående:

<script language="JavaScript" type="text/javascript">
<!--
function Pop1()
{
pop1 = window.open('mig.html','Pop1','width=200,height=500,top=100,left=625')
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
//-->
</script>

og det her er noget af koden i menuen, hvor jeg skal linke nogen sider både til det vindue man er i - og til pop1. Vil du hjælpe mig med at skrive koden ind?

//siteitems[x]=["Item Text", "Optional URL associated with text"]

sitems[0]=["<big><font face='Verdana'>NAVIGATION</font></big>", ""]
sitems[1]=["Om mig", "mig.html/"]
sitems[2]=["Portfolio", "java script:Pop1('portfolio.html/')"]
sitems[3]=["Referencer", "java script:Pop1('referencer.html/')"]
sitems[4]=["CV", "java script:Pop1('cv.html/')"]
sitems[5]=["Kontakt", "java script:Pop1('kontakt.html/')"]
sitems[6]=["Mediegrafiker?", "mediegrafiker.html/"]
sitems[7]=["Links", "java script:Pop1('links.html/')"]
//If you want the links to load in another frame/window, specify name of target (ie: target="_new")
var target=""

Hvad hvis jeg desuden skal have både pop1 og det eksisterende vindue til at loade en ny side - på samme tid?? (okay  - måske skulle jeg lige tage 1 ting ad gangen...)

:o)
Avatar billede anne-m Nybegynder
05. maj 2004 - 09:33 #7
ej undskyld - jeg roder da lidt rundt i det. Jeg startede jo med at ville have et billede vist ved onclick -undskyld.

Jeg har ændret det lidt (undskyld) jeg skal åbne noget i pop1 (det virker - men det er kun det ene link der virker (mig.html)
jeg skal så fra pop1 åbne noget i pop2(det vindue der åbnede pop1)

I pop2 skal jeg så kunne vise billeder ved at der er nogen links (på samme side)
<img src="billeder/menubillede.gif" onclick="opener.images['visBillede'].src = 'portfolio.gif';"> (kan jeg gøre sådan?)

Jeg håber ikke jeg har forvirret jer fuldstændig..... ;o/
Avatar billede anne-m Nybegynder
05. maj 2004 - 09:43 #8
Her er helt præcist hvad menuen i pop2 skal (pop2 er det vindue der åbner pop1):

menu i pop2:

mig.html (skal åbne i samme vindue,lukke pop1 hvis det er åbent)

portfolio.html (skal åbne en side i samme vindue og en anden i pop1)

referencer.html (skal åbne en side i samme vindue og en anden i pop1)

cv.html (skal åbne en side i samme vindue og en anden i pop1)

kontakt.html (skal åbne i samme vindue,lukke pop1 hvis det er åbent)

mediegrafiker.html (skal åbne en side i samme vindue og en anden i pop1)

links.html (skal åbne i samme vindue,lukke pop1 hvis det er åbent)

Er 100 point for lidt? ;o)
Avatar billede anne-m Nybegynder
05. maj 2004 - 16:14 #9
nå - nu tror jeg i har opgivet mig. Det er okey, jeg blev også pænt forvirret til sidst ;o)
...jeg finder på noget lidt mindre kompliceret...
Avatar billede anne-m Nybegynder
05. maj 2004 - 16:16 #10
Jeg giver ikke 100 point, da jeg ikke fandt løsningen... men Ole og Roenving - læg et svar, så giver jeg lidt point for jeres ulejlighed. ;o)
Avatar billede roenving Novice
05. maj 2004 - 16:35 #11
<script type="text/javascript">
var pop1 = {closed:true};
function popWin(url){
  pop1 = window.open(url, 'pop1');//og features kan du jo bare sætte på !-)
}

function openDouble(url1,url2){
  if(url2==0)
    if(!pop1.closed)pop1.close();
  else
    popWin(url2);
  location.href=url1;
}
</script>


<a href="#" onclick="openDouble('mig.html',0);return false;">Om mig</a>
<a href="#" onclick="openDouble('portfolio.html','portfolioEks1.html');return false;">Portfolio</a>

osv ...
Avatar billede anne-m Nybegynder
05. maj 2004 - 16:44 #12
(tør jeg spørge...)
Hvis det skal sættes ind i den her menu?:

  <script language="JavaScript1.2">

/***********************************************
* Sliding Menu Bar Script- © Dynamic Drive (www.dynamicdrive.com)
* Visit http://www.dynamicdrive.com/ for full source code
* This notice must stay intact for use
***********************************************/
var slidemenu_width=150 //specify width of menu (in pixels)
var slidemenu_reveal=20 //specify amount that menu should protrude initially
var slidemenu_top=100  //specify vertical offset of menu on page
var ns4=document.layers?1:0
var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
var ns6=document.getElementById&&!document.all?1:0
if (ie4||ns6)
document.write('<div id="slidemenubar2" style="left:'+((slidemenu_width-slidemenu_reveal)*-1)+'; top:'+slidemenu_top+'; width:'+slidemenu_width+'" onMouseover="pull()" onMouseout="draw()">')
else if (ns4){
document.write('<style>\n#slidemenubar{\nwidth:'+slidemenu_width+';}\n<\/style>\n')
document.write('<layer id="slidemenubar" left=0 top='+slidemenu_top+' width='+slidemenu_width+' onMouseover="pull()" onMouseout="draw()" visibility=hide>')
}
var sitems=new Array()
///////////Edit below/////////////////////////////////
//siteitems[x]=["Item Text", "Optional URL associated with text"]
sitems[0]=["<big><font face='Verdana'>::MENU::</font></big>", ""]
sitems[1]=["Om mig", "mig.html/"]
sitems[2]=["<big><font face='Verdana'>::PORTFOLIO::</font></big>", ""]
sitems[3]=["Web", "web.html/"]
sitems[4]=["Logo", "logo.html/"]
sitems[5]=["Illustration", "illustration.html/"]
sitems[6]=["Trykt", "trykt.html/"]
sitems[7]=["<big><font face='Verdana'>::PRÆFERENCER::</font></big>", ""]
sitems[8]=["CV", "cv.html/"]
sitems[9]=["Anbefaling", "anbefaling.html/"]
sitems[10]=["Kontakt", "kontakt.html/"]
sitems[11]=["<big><font face='Verdana'>::INFO::</font></big>", ""]
sitems[12]=["Mediegrafiker", "mediegrafiker.html/"]
sitems[13]=["Links", "linksr.html/"]
//If you want the links to load in another frame/window, specify name of target (ie: target="_new")
var target=""
/////////////////////////////////////////////////////////
if (ie4||ns4||ns6){
for (i=0;i<sitems.length;i++){
if (sitems[i][1])
document.write('<a href="'+sitems[i][1]+'" target="'+target+'">')
document.write(sitems[i][0])
if (sitems[i][1])
document.write('</a>')
document.write('<br>\n')
}
}
function regenerate(){
window.location.reload()
}
function regenerate2(){
if (ns4){
document.slidemenubar.left=((slidemenu_width-slidemenu_reveal)*-1)
document.slidemenubar.visibility="show"
setTimeout("window.onresize=regenerate",400)
}
}
window.onload=regenerate2
rightboundary=0
leftboundary=(slidemenu_width-slidemenu_reveal)*-1
if (ie4||ns6){
document.write('</div>')
themenu=(ns6)? document.getElementById("slidemenubar2").style : document.all.slidemenubar2.style
}
else if (ns4){
document.write('</layer>')
themenu=document.layers.slidemenubar
}
function pull(){
if (window.drawit)
clearInterval(drawit)
pullit=setInterval("pullengine()",10)
}
function draw(){
clearInterval(pullit)
drawit=setInterval("drawengine()",10)
}
function pullengine(){
if ((ie4||ns6)&&parseInt(themenu.left)<rightboundary)
themenu.left=parseInt(themenu.left)+10
else if(ns4&&themenu.left<rightboundary)
themenu.left+=10
else if (window.pullit){
themenu.left=0
clearInterval(pullit)
}
}
function drawengine(){
if ((ie4||ns6)&&parseInt(themenu.left)>leftboundary)
themenu.left=parseInt(themenu.left)-10
else if(ns4&&themenu.left>leftboundary)
themenu.left-=10
else if (window.drawit){
themenu.left=leftboundary
clearInterval(drawit)
}
}

</script>

:o/
Avatar billede roenving Novice
05. maj 2004 - 16:56 #13
Jeg har ikke debugget menuen, men det er da værd at prøve:

sitems[1]=["Om mig", "java script:openDouble('mig.html/',0)"]

-- og:

sitems[3]=["Web", "java script:openDouble('web.html/','portfolioEks1.html');"]
Avatar billede anne-m Nybegynder
07. maj 2004 - 14:22 #14
... jeg kan stadig ikke få det til at virke. ;o(
Avatar billede anne-m Nybegynder
11. juni 2004 - 12:58 #15
luk.
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