Avatar billede nythjem Nybegynder
28. februar 2005 - 17:49 Der er 16 kommentarer og
1 løsning

Tjek om der bruges pop up killer?

Hej Alle!

Jeg har et site, hvor jeg præsenterer enkelte tools for mine brugere. Nogle af disse tools åbnes i et pop up vindue.

Jeg har set, at der på en række forskellige sites bliver kontrolleret om brugeren har slået "Pop up blokker" fra, eller givet adgang til pop up på denne side.

Jeg ville rigtig gerne lave det, så mine brugere blev informeret om, at der skulle slå deres blokker fra på mit site.

Er der nogle der har et script, eller en god metode?
Avatar billede moocher Nybegynder
28. februar 2005 - 18:05 #1
Tror jeg ikke at du kan idet der findes mange forskellige popup killers.
Avatar billede nythjem Nybegynder
28. februar 2005 - 18:08 #2
Selvfølgelig kan man det !-)

Man kunne jo åbne et pop up vindue på en onLoad, men så skal man bare lige have registreret om der kommer svar eller ikke.

Men det er jo bare metoden, en pæn måde at gøre det på :)
Avatar billede nythjem Nybegynder
02. marts 2005 - 10:17 #3
Lukker
Avatar billede roenving Novice
03. marts 2005 - 14:01 #4
try{
  window.open('noget.html','test');
}catch(e){
  alert('Din browser understøtter ikke popup-vinduer,\nsom vi bruger her på sitet !-)');
}
Avatar billede nythjem Nybegynder
03. marts 2005 - 15:17 #5
Hej Jes!

Tak for svaret.

Jeg har lige testet den med Explorer og sp2. I det tilfælde blokerer den bare.

Ville det ikke være muligt, at lave en window.open funktion, der afventer et svar fra pop up´en, og hvis det ikke kommer inden x antal sekunder eller lignende, så giver den en advarsel?

Jeg er ikke nået til det endnu, men ville selv lave det sådan, at der blev
- aktiveret en pop up ved onload,
- et vindue blev åbnet,
- en værdi blev parset ned i hoved dokumentet,
- og scriptet går videre til en ny side

Hvis værdien ikke kommer, så skal den give en anden en meddelelse om det.

Men som sagt, er ikke nået til det punkt endnu :)

<script language="JavaScript">
try{
window.open('test2.html','test');
}

catch(e){
alert('Din browser understøtter ikke popup-vinduer,\nsom vi bruger her på sitet !-)');
}
</script>
Avatar billede roenving Novice
03. marts 2005 - 15:37 #6
Får du ikke en alert, hvis du bruger det script ?-)

-- for den slags popups bliver 100% sikkert blokeret af alle popup-stoppere !-)
Avatar billede olebole Juniormester
03. marts 2005 - 15:45 #7
<ole>

roenving >> Får du nogensinde en JS-fejl, når en popup blokkeres?
Hvis 'nej', vil din catch så have noget at fange?  ;o)

/mvh
</bole>
Avatar billede olebole Juniormester
03. marts 2005 - 15:48 #8
Der _er_ vist kun den hårde vej. Så kan man til gengæld sætte en cookie, der ved næste sidekald fortæller, at denne bruger anvender popup-killer. Så kan man nøjes med at 'genere' ham én gang (f.eks. om måneden)  :)
Avatar billede nythjem Nybegynder
03. marts 2005 - 16:09 #9
Ja du har helt ret Ole.

Jeg ville nu også kun gøre det én gang. Det hænger sådan sammen, at jeg i skrivende stund er ved at lægge sidste hånd på noget bruger vejledning i et cm system, og nogle af kunderne "har" undret sig over, at enkelte ting, som er pop ups ikke virker, så det var lige for at informere dem :)

Men jeg har nu stadig set mange steder, hvor de gerne vil have folk til at downloade nogle ting, advarer på en smart måde, hvis pop up er deaktiveret..
Avatar billede olebole Juniormester
03. marts 2005 - 16:20 #10
Jamen, hvorfor bruger du så ikke bare et layer i stedet for en popup - eller fyrer popup'en af direkte på en brugerhandling (et klik) og evt. derefter fylder indhold i den? Så kommer du udenom popoup-killers
Avatar billede olebole Juniormester
03. marts 2005 - 16:25 #11
PS: kan du henvise mig til en side, der tester for popup-killers, ville jeg gerne se koden  ;o)
Avatar billede nythjem Nybegynder
03. marts 2005 - 16:35 #12
Det er lidt svært, jeg bruger mine pop up med megen omhu, med andre ord, jeg har ikke mange af dem..

Lige to sekunder, så skal jeg støve nettet igennem. :)
Avatar billede nythjem Nybegynder
03. marts 2005 - 16:38 #13
Hold op, jeg er en skrue brækker.. :)

<body onLoad="StartT()">

<SCRIPT LANGUAGE="JavaScript">
ns4=document.layers
ie4=document.all
ns6=document.getElementById&&!document.all
var xWin=null; var ticks=6;

function ChangeLabel0(txt){
if(ns4){document.layers.label0.innerHTML=txt}
if(ie4){document.all.label0.innerHTML=txt}
if(ns6){document.getElementById("label0").innerHTML=txt}
}

function StartT(){
StartPopup();
window.focus();
ChangeLabel0("<b>Popup window appears in "+ticks+" sec. Wait please...</b>");
}
function StartPopup(){
xWin=window.open("pop.htm#abc");
setTimeout("test_xWin()",700);
}
function test_xWin(){
//  alert("typeof(xWin)="+typeof(xWin));
//  alert("typeof(xWin.location.href)="+typeof(xWin.location.href));
//  alert("xWin="+xWin);
//  alert("xWin.location.hash="+xWin.location.hash);
  if ( (xWin==null)
    ||(typeof(xWin)=="undefined")
    ||(typeof(xWin.location.hash)!="string")
//    ||(xWin.location.hash!="#abc")
    ){sMsg="<font color=#FF0000><b>A popup killer is detected</b></font>";}
  else{sMsg="<font color=#008000><b>NO popup killer is detected</b></font>";};
//alert("xWin="+xWin+" type="+typeof(xWin)+" typeloc="+typeof(xWin.location.hash)+" hash="+xWin.location.hash);
  window.focus();
  ChangeLabel0(sMsg);
}
</SCRIPT>
Avatar billede nythjem Nybegynder
03. marts 2005 - 16:38 #14
Avatar billede nythjem Nybegynder
03. marts 2005 - 17:07 #15
Hey forresten Ole eller Jes.

Hvordan får jeg viderestillet siden, hvis pop up killeren er slået fra document.location="andenside.asp"; ??
Avatar billede Slettet bruger
03. marts 2005 - 17:10 #16
Faktisk meget interesant emne.

dette skulle smide dig videre.
document.location.href="andenside.asp";
Avatar billede nythjem Nybegynder
03. marts 2005 - 17:27 #17
Tak.

Jah, det ved jeg, men jeg skal bare lige have den ind i Else ´en..


else{
document.location.href="andenside.asp"
;};


Er det sådan?
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