Avatar billede willi Nybegynder
11. august 2003 - 13:48 Der er 14 kommentarer og
2 løsninger

Popup link skal åbne i bestemt frame

Spørgsmålet er stillet tidligere: http://www.eksperten.dk/spm/365419.
Men da det dengang ikke kom til at virke stiller jeg det igen.

Jeg har, mener jeg, et udmærket script som skal bruges til login.

Det er ikke problemet at få det til at virke. Meget simpelt.
Men at få det til at åbne i bestemt frame:

>klik på link i frame 1
>popup vindue åbner
>indtast bruger og password
>klik på ok
>popup vindue lukker og reference siden åbnes i frame 2

Det er lige præcis det som jeg ikke kan få den til. At åbne referencen i en bestemt frame.

Nogen der kan hjælpe?












<html>
<!-- Minus AutoDato -->
<head><title>Login</title>
<META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
<script language="javascript">
// login version 4.2 june 2000
// Copy Right D10n...
// biab@iinet.net.au
// yobo42@hotmail.com
m=new Array();
var alpha="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghij";

function box(part,c,r)
{ prms=new Array(r,c); typ=new Array("rowspan=","colspan=");
  bx=new Array("<tr>","</tr>","</tr><tr>","</table>");
  clr=new Array("808080","c0c0c0","ffffff","000000");
  img='<img src="blank.gif" width=1 height=1>'; txt="";
  bx[bx.length]='<table border=0 cellpadding=0 cellspacing=0>';
  for(bi=0;bi<4;bi++)
    { for(bj=0;bj<2;bj++)
      bx[bx.length]='<td '+typ[bj]+(2*bi+prms[bj]);
      bx[bx.length]=' bgcolor="#'+clr[bi]+'">'+img+'</td>'; };
  ord=new Array();
  ord[0]=new Array(4,0,14,16,12,16,14,16,2,11,13,9,13,11,7,2,8,10,6,10,8,10,1);
  ord[1]=new Array(0,6,10,2,9,7,2,12,16,1,3);
  for(bi=0;bi<ord[part].length;bi++)
    txt+=bx[ord[part][bi]]+"\n";
  return txt; };

function check(frm)
{ var ary=new Array(0,1,1,7,9,8); f=new Array();
  for(i=0;i<3;i++)
    ary[i]=makehash(frm.elements[ary[i]].value,ary[i+3]);
  for(i=0;i<m.length;i++)
    if(m[i][0]==ary[0]) f[f.length]=i;
  if(f.length==0) { alert("Member Not Found"); return; };
  for(i=0;i<f.length;i++)
    if(m[f[i]][1]==ary[1])
    { ary[2]+=" ";
      for(j=2;j<m[f[i]].length;j++)
        { t=""; cnt=0;
          for(k=0;k<m[f[i]][j].length;k++)
          { c=m[f[i]][j].substring(k,k+1);
            a=alpha.indexOf(c,9);
            if(a>-1)
              { b=a-(ary[2].substring(cnt,cnt+1)*1);
                c=alpha.substring(b,b+1);
                cnt=(cnt+1)%(ary[2].length-1); };
            t+=c; };
          m[f[i]][j]=t; };
      if(m[f[i]].length>4)
        { wt='<html><body bgcolor="#bfbfbf"><center><form>'+box(0,1,1)+'<tr><td align="center">Destination<br>';
          wt+='<select size=5 onchange="window.opener.window.opener.location=this.options[this.selectedIndex].value; window.opener.close(); window.close();">';
          for(j=2;j<m[f[i]].length;j=j+2)
          wt+='<option value="'+m[f[i]][j+1]+'">'+m[f[i]][j];
          wt+='</select></td></tr>'+box(1,1,1)+'</form></body></html>';
          w=window.open("","ls","width=150,height=150");
          w.document.write(wt); w.document.close(); }
      else { window.opener.location=m[f[i]][3]; window.close(); };
      return; };
  alert("Incorrect Password!");
};

function makehash(str,mult)
{ hash=0;
  for (j=0;j<str.length;j++)
    hash=hash*mult+alpha.indexOf(str.substring(j,j+1),0)+1;
  return hash; };
</script>
<script language="javascript" src="login.js"></script>
</head>
<body bgcolor="#bfbfbf">
<center>
<form name="l">
<script language="javascript">document.write(box(0,1,1));</script>
<tr><td align="center">Member Name:<br>
  <input type="text" name="mem" size=16><br>
  Password:<br>
  <input type="password" name="pass" size=16><br>
  <input type="button" value="Login" onclick="check(this.form);">
  <input type="button" value="Cancel" onclick="window.close();"></td></form></tr>
<script language="javascript">document.write(box(1,1,1));</script>
</form>
</body>
</html>
Avatar billede Slettet bruger
12. august 2003 - 16:52 #1
Det er svært at overskue, eftersom der ikke er et link.
Er "login.js" ikke vigtig at have med?
Avatar billede willi Nybegynder
12. august 2003 - 17:05 #2
Det er et login script som læser krypterede navne i Login.js. Hvis det er det du mener.
Avatar billede Slettet bruger
12. august 2003 - 17:10 #3
Prøv at skifte denne linje:

wt+='<select size=5 onchange="window.opener.window.opener.location=this.options[this.selectedIndex].value; window.opener.close(); window.close();">';

... ud med:

wt+='<select size=5 onchange="window.opener.window.opener.frames['frame2']location.href=this.options[this.selectedIndex].value; window.opener.close(); window.close();">';

... og denne linje:

else { window.opener.location=m[f[i]][3]; window.close(); };

... ud med:

else { window.opener.frames["frame2"].location.href=m[f[i]][3]; window.close(); };
Avatar billede roenving Novice
12. august 2003 - 17:13 #4
Re mit spørgsmål i det tidligere spørgsmål, så er det måske (jeg har endnu ikke forstået at der kunne være tale om to generationer af popups !-)

wt+='<select size=5 onchange="window.opener.frames['frame2']location.href=this.options[this.selectedIndex].value; window.close();">';
Avatar billede willi Nybegynder
12. august 2003 - 19:27 #5
>roenving. Ja. Hej igen.
Det er fordi i første popup logger man på. Herefter et nyt popup vindue som, alt efter hvem man er(hvilke rettigheder man har) angiver links til de sider som man har lov til at se.

Jeg har fundet et eksempel med scriptet:
http://scripts.jajb.dk/scripts/sikkerhed/avanceret.htm
Men andre har åbenbart samme ønske som jeg:
http://www.script.dk/forum.jsp?messageId=6626
Avatar billede willi Nybegynder
12. august 2003 - 19:35 #6
Det virker rigtig godt. Men jeg kan ikke styre det ordentligt (target).

Jeg er ved at se på hvordan php virker og skal installeres. Der er efter hvad jeg kan se også nogle fornuftige login script til php.
Avatar billede Slettet bruger
14. august 2003 - 17:19 #7
Hvad mener du med, at du ikke kan styre det ordentligt?
Avatar billede willi Nybegynder
15. august 2003 - 18:22 #8
>phoenoxv Jeg mener, at jeg vil have skriptet til at åbne siden i en bestemt frame.

Når popup vindue 1 åbnes indskrives brugernavn og adgangskode.
Så åbnes et popup vindue2 hvor der er link til den side - eller de sider - som man er berettiget til at se.

Her klikker man på den side der man ønsker at se.
Men som det er nu åbnes siden i den frame hvor linket til popup vindue1 er.
Jeg ønsker at den side der skal vises skal åbnes i en anden frame.
Avatar billede Slettet bruger
16. august 2003 - 10:49 #9
Så vidt jeg kan se, bør scriptet også gøre det.
Kan du ikke smide et link? Det vil formentlig kunne løse problemet hurtigt.
Avatar billede willi Nybegynder
04. september 2003 - 15:39 #10
Er der nogen der vil have point for deltagelsen?
Så skal der svares ,)
Ellers tilfalder de mig selv.
PS: Jeg har droppet dette script og har istedet sat mig lidt ind i .asp.
Det understøtter serveren og det ser ud til at være udmærket til formålet.
Avatar billede Slettet bruger
05. september 2003 - 15:29 #11
Som spørger er det dit ansvar at uddele point efter fortjeneste. Så du må bede dem, du synes skal have point, om at lægge et svar. :)
Avatar billede willi Nybegynder
05. september 2003 - 15:38 #12
Det mener jeg da både du og roenving skal have.
Men det er vel også svarenes ansvar at svare :)
Avatar billede roenving Novice
06. september 2003 - 02:59 #13
Jeps, willi,

-- men jeg har den filosofi, at der skal være en bruger, som synes han har fået noget (et resultat eller en indsats han kan anerkende), før jeg skal have points ...

-- og hverken phoenixv eller jeg _mangler_ points, så derfor sker det ofte at jeg afventer spørgerens reaktion før jeg begynder at 'kræve' points ved at svare !-)

-- men hvis du føler du har fået noget, så velbekomme '-)
Avatar billede Slettet bruger
07. september 2003 - 12:12 #14
Og også svar herfra. :)
Avatar billede willi Nybegynder
30. september 2003 - 11:00 #15
Tak for deltagelsen.
Avatar billede roenving Novice
04. oktober 2003 - 15:26 #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