Avatar billede th1 Nybegynder
22. november 2007 - 20:31 Der er 16 kommentarer og
1 løsning

Genbrug af kode for popup vindue

Hejsa jeg har et script som virker meget fint. Det er et vindue som åbner sig via et onclick.

mit problem er at jeg gerne vil genbruge mit script men få et nyt vindue op. Det kan jeg ikke finde ud af.

lader koden følge med:

<----- kode starter ------------>

isIE=document.all;
isNN=!document.all&&document.getElementById;
isN4=document.layers;
isHot=false;
function ddInit(e){
topDog=isIE ? "BODY" : "HTML";
whichDog=isIE ? document.all.theLayer : document.getElementById("CreateWindow");
hotDog=isIE ? event.srcElement : e.target;
while (hotDog.id!="titleBar"&&hotDog.tagName!=topDog){
hotDog=isIE ? hotDog.parentElement : hotDog.parentNode;
}
if (hotDog.id=="titleBar"){
offsetx=isIE ? event.clientX : e.clientX;
offsety=isIE ? event.clientY : e.clientY;
nowX=parseInt(whichDog.style.left);
nowY=parseInt(whichDog.style.top);
ddEnabled=true;
document.onmousemove=dd;
}
}
function dd(e){
if (!ddEnabled) return;
whichDog.style.left=isIE ? nowX+event.clientX-offsetx : nowX+e.clientX-offsetx;
whichDog.style.top=isIE ? nowY+event.clientY-offsety : nowY+e.clientY-offsety;
return false;
}
function ddN4(whatDog){
if (!isN4) return;
N4=eval(whatDog);
N4.captureEvents(Event.MOUSEDOWN|Event.MOUSEUP);
N4.onmousedown=function(e){
N4.captureEvents(Event.MOUSEMOVE);
N4x=e.x;
N4y=e.y;
}
N4.onmousemove=function(e){
if (isHot){
N4.moveBy(e.x-N4x,e.y-N4y);
return false;
}
}
N4.onmouseup=function(){
N4.releaseEvents(Event.MOUSEMOVE);
}
}
function hideEvent(){
if (isIE||isNN) whichDog.style.visibility="hidden";
else if (isN4) document.CreateWindow.visibility="hide";
}
function CreateEvent(obj){
if (isIE||isNN) whichDog.style.visibility="visible";
else if (isN4) document.CreateWindow.visibility="show";


document.getElementById('ctl01_lblCurrentDateSelected').innerHTML = obj.id.substring(9,obj.id.length-0);
}
document.onmousedown=ddInit;
document.onmouseup=Function("ddEnabled=false");
Avatar billede w13 Novice
22. november 2007 - 21:31 #1
Jeg tror blot, du kan gøre således:
-----------------------------------------------
function Popup(){
isIE=document.all;
isNN=!document.all&&document.getElementById;
isN4=document.layers;
isHot=false;
function ddInit(e){
topDog=isIE ? "BODY" : "HTML";
whichDog=isIE ? document.all.theLayer : document.getElementById("CreateWindow");
hotDog=isIE ? event.srcElement : e.target;
while (hotDog.id!="titleBar"&&hotDog.tagName!=topDog){
hotDog=isIE ? hotDog.parentElement : hotDog.parentNode;
}
if (hotDog.id=="titleBar"){
offsetx=isIE ? event.clientX : e.clientX;
offsety=isIE ? event.clientY : e.clientY;
nowX=parseInt(whichDog.style.left);
nowY=parseInt(whichDog.style.top);
ddEnabled=true;
document.onmousemove=dd;
}
}
function dd(e){
if (!ddEnabled) return;
whichDog.style.left=isIE ? nowX+event.clientX-offsetx : nowX+e.clientX-offsetx;
whichDog.style.top=isIE ? nowY+event.clientY-offsety : nowY+e.clientY-offsety;
return false;
}
function ddN4(whatDog){
if (!isN4) return;
N4=eval(whatDog);
N4.captureEvents(Event.MOUSEDOWN|Event.MOUSEUP);
N4.onmousedown=function(e){
N4.captureEvents(Event.MOUSEMOVE);
N4x=e.x;
N4y=e.y;
}
N4.onmousemove=function(e){
if (isHot){
N4.moveBy(e.x-N4x,e.y-N4y);
return false;
}
}
N4.onmouseup=function(){
N4.releaseEvents(Event.MOUSEMOVE);
}
}
function hideEvent(){
if (isIE||isNN) whichDog.style.visibility="hidden";
else if (isN4) document.CreateWindow.visibility="hide";
}
function CreateEvent(obj){
if (isIE||isNN) whichDog.style.visibility="visible";
else if (isN4) document.CreateWindow.visibility="show";


document.getElementById('ctl01_lblCurrentDateSelected').innerHTML = obj.id.substring(9,obj.id.length-0);
}
document.onmousedown=ddInit;
document.onmouseup=Function("ddEnabled=false");
}
-----------------------------------------------------
Så bruger du funktionen ved at skrive:
Popup();
i JavaScript.

Men jeg er sikker på, din kode kan blive forkortet med 80% - den er _meget_ lang. Kan jeg se, hvad den gør, et sted på nettet?
Avatar billede w13 Novice
22. november 2007 - 21:33 #2
Ahr, det er nok alligevel ikke så enkelt. Jeg må nok lige se den i aktion på nettet, så skal jeg stykke noget sammen.
Avatar billede th1 Nybegynder
22. november 2007 - 21:45 #3
oky takker. ville være meget nice hvis du gad det..=)
Avatar billede w13 Novice
22. november 2007 - 21:58 #4
Kan du ikke linke til et sted, du bruger den? =) Det virker ikke, når jeg bare kopierer den ind, så muligvis mangler jeg noget af den.
Avatar billede th1 Nybegynder
22. november 2007 - 23:01 #5
jeg har den ikke lige aktion på nettet men det kan den komme om5 min
Avatar billede th1 Nybegynder
22. november 2007 - 23:07 #6
så nu er den på nettet du kan se eksemplet på http://www.hlidarsson.net/
Avatar billede w13 Novice
22. november 2007 - 23:09 #7
Hvilken del af det, er funktionen, du skrev?
Avatar billede th1 Nybegynder
22. november 2007 - 23:10 #8
glemte lige at skrive at der hvor linket update text der skal der en anden popup komme i stedet for den som kommer når man klikker på en dato altså boxen
Avatar billede w13 Novice
22. november 2007 - 23:13 #9
Lige nu er der i øvrigt javascript-fejl, når jeg ser siden.

obj.style.backgroundcolor="black";

skal være:

obj.style.backgroundColor="black";
Avatar billede w13 Novice
22. november 2007 - 23:13 #10
Men hvilken del af det, er den funktion, du skrev tidligere? Altså hvad på den side, gør funktionen?
Avatar billede th1 Nybegynder
23. november 2007 - 10:02 #11
Det er CreateEvent() funktionen som viser popup boxet. men jeg vile gerne lave en ny function som åener en ny popup box men helst genruge koden.
Avatar billede th1 Nybegynder
23. november 2007 - 10:29 #12
Hejsa jeg har løst mit problem. du skal have mange tak for din tid og alt hjælp. Men dog har jeg et andet problem. tænkte på om jeg kan beskrive det for dig og måske du kan hjælpe mig
Avatar billede th1 Nybegynder
23. november 2007 - 11:38 #13
Hejsa. jeg har det problem at det id jeg får det kan jeg ikke indsatte ind nogen steder.

hvis jeg laver for eksmepel et <label id="ShowID"></label>

så er der menigen at denne kode skal indsatte det ind i labelen:

document.getElementById('ShowID').innerHTML = obj.id.substring(9,obj.id.length-0);

Det gør den bare ikke. Men den viser godt nok iden på den div jeg har klikket på.

Hvad gør jeg forkert :S
Avatar billede th1 Nybegynder
23. november 2007 - 11:53 #14
jeg opretter lige en ny tråd for det spg
Avatar billede w13 Novice
23. november 2007 - 14:03 #15
Ok, så opret selv et svar og accepter det. Så får du pointene igen, og spørgsmålet her lukkes.
Avatar billede w13 Novice
23. november 2007 - 17:45 #16
Du kan bare lukke her. =)
Avatar billede th1 Nybegynder
04. december 2007 - 11:25 #17
jeps gør  jeg
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