webForumDet fria alternativet

Popupkoll

14 svar · 498 visningar · startad av Asa

AsaMedlem sedan dec. 20011 934 inlägg
#1

1. Hur kollar man om en popup redan är öppen? Om den är öppen ska inte popupen laddas om!

2. Finns det nåt sätt att få ett lager att döljas efter ex 10 sekunder!
Har denna kod för att stänga lagret:

function Lay(check){
	var lay;
	if (!document.checking){
		if (document.getElementById) lay = document.getElementById(check).style;
		else if (document.all) lay = document.all[check].style;
		lay.visibility = "hidden";
	}else{
		lay = document.checking[check];
		lay.visibility = "hide";
	}
}
dectgapMedlem sedan sep. 20021 542 inlägg
#2

För att sätta igång en javascript-funktion efter en viss tid använder du setTimeOut(funktion,n); där funktion=den funktion (eller vad man nu vill ha) som ska köras i form av en sträng, och n=antal millisekunder som ska gå tills funktion ska köras.

T.ex.:
<body onload='javascript: setTimeOut("Lay(någonting)", 10000);'>

AsaMedlem sedan dec. 20011 934 inlägg
#3

Nån som vet om det går att kolla om en popup är öppen?? Hur skriver jag!

Använder denna att öppna med:

   <script language=javascript>
   <!--
   window.open("privat.asp?mem_id=<%=RS("mess_from")%>","<%=RS("mess_id_name")%>","width=450,height=300,scollbars=yes,loaction=no,status=no,toolbar=no")
   //-->
   </script>
Jesper TMedlem sedan nov. 20017 058 inlägg
#4

http://www.webforum.nu/showthread.php?s=&threadid=52312
Där ser det ju ut som om du fick ett svar på den frågan, eller?

AsaMedlem sedan dec. 20011 934 inlägg
#5

Visste jag sett det nånstans! Men inge klokare! Blev inte det förut heller kom jag på!

Koden som öppnar en popup ifrån en länk ser ut så här:

function Mess(mess_id) {
	remote = window.open( "", "INSTMESS" + mess_id, 'width=450,height=300,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizeable=1,compyhistory=0' );
	remote.location.href = 'privat.asp?mem_id=' + mess_id;
}

Och koden som kollar om man fått nå mess ser ut så här:

Set RS = Conn.Execute("Select * From chat Where mess_to=" & Session("UserId") & " And mess_to_read=false Order By id desc")
If RS.EOF Then%>
<%Else%>
   <script language=javascript>
   <!--
   window.open("privat.asp?mem_id=<%=RS("mess_from")%>","INSTMESS<%=RS("mess_id_name")%>","width=450,height=300,scollbars=yes,loaction=no,status=no,toolbar=no")
   //-->
   </script>
<%End If
Set RS = Nothing
dectgapMedlem sedan sep. 20021 542 inlägg
#6

Åsa... det är god sed att lämna någon kommentar till de svar man får. Antingen säger man "Tyvärr, men det fungerade inte" eller "Tack, det fungerade."

Att bara ignorera är oförskämt.

AsaMedlem sedan dec. 20011 934 inlägg
#7

Jag får inget å funka av det jag såg på sidan! Vet inte hur jag ska kombinera det med min kod!

JojoxxMedlem sedan juni 20004 306 inlägg
#8

Vi börjar med att hoppa över ASP-koden utan koncentrerar oss på JavaScript-biten. Titta alltså på koden från webbläsarens "Visa källa" istället.

När du öppnar en popup ger du den ett "handtag" med foo=window.open... I foo har du då en objekt-referens som du kan använda. Om det är osäkert om fönstret öppnas eller inte (beroende på olika villkor eller användarens interaktion) bör du först definera handtaget som en variabel så att du kan kolla den senare (försöker du kolla en odefinierad variabel kommer du att få ett felmeddelande). Därför definierar vi den först med;

var foo=false;

Detta skall alltså ALLTID ske, oavsett om fönstret sedan skall öppnas eller inte. Sedan kollar du om fönstret är öppnat eller inte med;

if(foo && !foo.closed){

Översatt till svenska;

om(foo OCH INTE foo.ärStängt){

Hoppas det förklarade scriptet lite.

AsaMedlem sedan dec. 20011 934 inlägg
#9

Hmm mena du att jag ska skriva så här? Isåfall funkar det ej! Den laddar om hela popupen hela tiden! byter jag plats på foo=.. i första koden händer inget alls!

   <script language=javascript>
   <!--
   var foo=false;
   if(foo && !foo.closed){ 
   }else{
   foo=window.open("privat.asp?mem_id=<%=RS("mess_from")%>","INSTMESS<%=RS("mess_id_name")%>","width=450,height=300,scollbars=yes,loaction=no,status=no,toolbar=no")}
   //-->
   </script>

och

function Mess(mess_id) {
       var foo=false;
	foo = window.open( "", "INSTMESS" + mess_id, 'width=450,height=300,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizeable=1,compyhistory=0' );
	foo.location.href = 'privat.asp?mem_id=' + mess_id;
}
JojoxxMedlem sedan juni 20004 306 inlägg
#10

Nej... inte så.

Först lägger du ett script-block som ovillkorligen (alltid) körs (ex i head, alltså före all annan popup-relaterad scriptkod);

<script language="JavaScript" type="text/javascript">
var foo=false;
</script>

Vi kan säga att detta talar om att "fönstret" foo inte har öppnats.

Sedan någon annanstanns på sidan öppnar du ett fönster med;

foo=window.open(...

Det vi gör nu är alltså att vi öppnar ett fönster och lägger referensen till det i variabeln foo.

För att sedan kolla om foo är öppnat kan vi använda;

if(foo){

eller om det är öppnat OCH inte sedan stängt;

if(foo && !foo.closed){

Försvenskning;
var foo=false; // Vi har ett fönster, men det är stängt
foo=window.open(... // Vi har ett fönster som vi öppnar
if(foo && foo.closed){ // Vi hade ett fönster, men det är nu stängt

Observera skillnaden mellan foo.closed (stängt) och !foo.closed (INTE stängt).

AsaMedlem sedan dec. 20011 934 inlägg
#11

Jag får dock inte till det! Men får stå ut me det som det är :/

mikkeXMedlem sedan aug. 2002490 inlägg
#12

Om du kan ge oss en länk så kanske vi kan hjälpa dig ändå...

AsaMedlem sedan dec. 20011 934 inlägg
#13

Här ligger chatten där jag vill kolla om den redan är öppen! Dock har jag ändrat tillbaka som det var!

http://www.snygging.nu/chat2/

JojoxxMedlem sedan juni 20004 306 inlägg
#14

Problemet är att du byter sida när du loggar in (kanske inte byter, men laddar om). Detta gör att foo nollställs. Jag skulle föreslå att när du klickar på logga in-knappen så öppnar du popup-fönstret och sköter inloggningsförvarandet därifrån (utan att byta sida i det första fönstret). När du sedan kört login-funktionen i popup-en kan du uppdatera med den sidan som fungerar som chat.

AsaMedlem sedan dec. 20011 934 inlägg
#15

Det är popupen för privatchattningen som den ska kolla om den är öppen! Första popupen heter inte foo utan de som skapas vid klick på en chattare!

Kanske är samma problem iallafall :/ ??

Genererad på 376 ms · cache AV · v20260730165559-full.f96bc7eb