webForumDet fria alternativet
Logga in / Bli medlem

Popupkoll

JavaScript

14 svar · 500 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Trådstart#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";
	}
}
Medlem sedan sep. 20021 655 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);'>

Medlem sedan dec. 20011 860 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>
Medlem sedan nov. 20017 144 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?

Medlem sedan dec. 20011 860 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
Medlem sedan sep. 20021 655 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.

Medlem sedan dec. 20011 860 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!

Medlem sedan juni 20004 308 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.

Medlem sedan dec. 20011 860 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;
}
Medlem sedan juni 20004 308 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).

Medlem sedan dec. 20011 860 inlägg
#11

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

Medlem sedan aug. 2002477 inlägg
#12

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

Medlem sedan dec. 20011 860 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/

Medlem sedan juni 20004 308 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.

Medlem sedan dec. 20011 860 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 :/ ??

273 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
145 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)