WinFuture-Forum.de: Problem Mit Popup Und Useragent - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Problem Mit Popup Und Useragent


#1 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 04. Juni 2008 - 16:00

Hey Leute,
ich habe diverse Probleme mit einem Popup.
Ich habe ein Popup programmiert welches nur erscheinen soll wenn der User IE benutz.
Ich habe dazu diesen Quellcode. Da ich mit JS mich nicht auskenne und der Popup auch den headbereich in Anspruch nimmt musste ich ein wenig tricksen. btw Wer weiß wie man das Popup auch im bodybereich ausführen kann?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <link rel="stylesheet" href="style.css" type="text/css">
  <?php
  $sperre=0;
  $user_agent = getenv("HTTP_USER_AGENT");
	  if(preg_match("/ie/i",$user_agent)){
		 $sperre=1;
	  }
  if($sperre == 1){
	  echo '<script type="text/javascript" language="JavaScript">';
	  echo "<!--
	  function Popup()
	  {
	  fenster1=window.open('popup/useit.html','Please use Firefox!','height=350,width=500');
	  }
	  // -->
	  </script>
	  </head>";
	  echo '<body onLoad="Popup()"; >Popup erscheint!';
  }elseif($sperre == 0){
	  echo "</head> <body>Normaler Inhalt";
	  }
  ?>
  </body>


Wenn ich nun "/ie/i" für Internetexplorer mit "/mozilla/" für Firefox ersetzte funktioniert das Popup einwandfrei.

Habe es mal Hochgeladen damit ihr euch mal die Quelltexte angucken könnt und vor allem dass ihr es testen könnt. Es kann auch an meinem IE liegen dass kein Popup erscheint. Da kommen ich gleich zum zweiten Problem:
Wenn ich mit xammp in einer Datei mit dem Inhalt
echo  getenv("HTTP_USER_AGENT");
kommt bei meinem neu installierten IE7 folgendes bei heraus:
Mozilla/4.0 (compatible; MSIE 7.0; Windows  NT 5.1)

Wie kann das denn bitte sein.

Habe es mal alles hochgeladen:
Popup bei IE
Popu bei Mozilla/Firefox


Hoffentlich weiß jemand wie ich das alles besser machen kann. Ich mchte nur ein Popup wennder Surfer IE nutzt.

Dieser Beitrag wurde von Toasterfraktion bearbeitet: 04. Juni 2008 - 16:01

0

Anzeige



#2 Mitglied ist offline   Schnubbie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 112
  • Beigetreten: 02. Oktober 04
  • Reputation: 0

geschrieben 04. Juni 2008 - 16:20

Warum machst du das so extrem kompliziert?
Warum benutzt du nicht

<!--[if lt IE 7]>
.... Inhalt für das Popup
<![endif]-->


Das zum Beispiel gibt allen Leuten, die unterhalb der Version7 die Seite besuchen ein Popup raus. Wer min. die Version7 hat kriegt keines zu sehen, das ganze kann man natürlich entsprechend anpassen
0

#3 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 04. Juni 2008 - 16:33

Also bei mir funktioniert deine Browserweiche mit dem IE7, aber vielen Leute haben Popup-Blocker und die werden dieses Popup nie sehen. Wenn überhaupt, dann würde ich nur einen dezenten Hinweis auf der Seite ausgeben und das nicht über Popups machen.
Generell kannst du auch die in PHP eingebaute Funktion get_browser() benutzen, um den Browser zu ermitteln.

Gruß,
Stefan
0

#4 Mitglied ist offline   Schnubbie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 112
  • Beigetreten: 02. Oktober 04
  • Reputation: 0

geschrieben 04. Juni 2008 - 16:40

Ich lass ein Div Layer einblenden mit einem kleinen schmalen Hinweis.

Angehängte Miniaturbilder

  • Angehängtes Bild: ieerror.png

Dieser Beitrag wurde von Schnubbie bearbeitet: 04. Juni 2008 - 16:44

0

#5 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 04. Juni 2008 - 20:20

@ Diewie,...
eigentlich funzt das mit dem Browsererkennen so nur das Popup nicht.

@Schubbie
das gefällt mir super gut. Kannst du mir das erklären?

Dieser Beitrag wurde von Toasterfraktion bearbeitet: 04. Juni 2008 - 20:23

0

#6 Mitglied ist offline   Schnubbie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 112
  • Beigetreten: 02. Oktober 04
  • Reputation: 0

geschrieben 04. Juni 2008 - 21:05

Na klar doch ;)

Also in den Head Bereich (<head> .... </head>) die Browserweiche mit der Error ID.
Hier mehr zu dem Thema Browserweichen für den IE

<!--[if lt IE 7]>
<div id="error">Sie verwenden eine veraltete IE Version (5.x / 6.x) mit dem es zu Darstellungsfehlern kommt. Um eine optimale Darstellung der Seite zu gewährleisten verwenden Sie bitte den IE7, Opera oder Mozilla Firefox.</div>
<![endif]-->

Text kann man natürlich anpassen wie man will, noch mit Links zu den Browsern und/oder eine kleine genauere Erklärung warum dieser Fehler erscheint etc

Dann noch anchließend in die CSS Datei
#error{position:absolute;top:0;left:0;width:100%;height:10px;background:url(../img/warning.gif) no-repeat left #ffffe1;border: 1px solid #e0c73d;padding:1px;padding-left:25px;z-index:999}


Ich habe das ganze als position absolute, kann natürlich auch als fixed, relative oder static definiert werden, je nach Anwendungsbereich ;)
Dann noch beachten das die Grafik in den img Ordner kommt, ansonsten Pfad anpassen. Grafik ist im Anhang ;)

Angehängte Miniaturbilder

  • Angehängtes Bild: warning.gif

Dieser Beitrag wurde von Schnubbie bearbeitet: 04. Juni 2008 - 21:08

0

#7 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 05. Juni 2008 - 13:18

@Schubbie
Danke für den Code aber wird das im Headbereich wirklich mit "<!--[if lt IE 7]>" gemacht?
0

#8 Mitglied ist offline   Schnubbie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 112
  • Beigetreten: 02. Oktober 04
  • Reputation: 0

geschrieben 05. Juni 2008 - 13:24

Ja <!--[if lt IE 7]> lt = less then = kleiner als, sprich wenn kleiner als IE7 dann mach das.... bis <![endif]-->
Siehe auch meinen Link :rolleyes:

Funktioniert bei meinen Seiten bestens und es reagiert nur bei IE Browsern unterhalb Version 7
0

#9 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 07. Juni 2008 - 08:21

@ Schubbie
Es funktioniert ja Super. Besten Dank.
Aber ich würde es gerne so machen dass es beim Scrollen noch oben am Rand fest mitscrollt und eventuell am Anfang wie ein solches Popup einfliegt. Kann man das nicht mit JS machen.
Wer hat ne Idee? :-D

Gruß,
Toasterfraktion
0

#10 Mitglied ist offline   Schnubbie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 112
  • Beigetreten: 02. Oktober 04
  • Reputation: 0

geschrieben 07. Juni 2008 - 09:22

Die IE Versionen unterhalb der Version 7 position:fixed nicht einfach so können (welch Überraschung) muss man einen Hack verwenden.
Ich hatte irgendwann die Schnauze voll von abertausenden CSS Hacks und verwende inzwischen diese JS Datei
http://code.google.com/p/ie7-js/

Diese holt per Javascript allemöglichen CSS Befehele ohne das man irgendwas wie div div#error oder html * body sonstwas machen muss, du schreibst einfach ein valides CSS und mit dem IE6 lässt du zusätzlich die oben genannte JS Datei laden. ;-)

Musst dann einfach das absolute gegen fixed eintauschen, fertig :P
0

#11 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 07. Juni 2008 - 17:51

Auf fixed hätt ich selber drauf kommen können^^ trotzdem danke.
Das funktioniert auch soweit im IE7. Was wird denn passieren wenn ich es in versionen unter7 teste?
habe nun absolut keine lust IE6 oder sonstwas noch auf meinen Pc zu installieren da ich IE hasse.

Das mit den JS datei klingt gut und interessant aber ich habs nich verstanden. Was macht sie denn in unserem Fall?
0

#12 Mitglied ist offline   N1truX 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.823
  • Beigetreten: 06. Juli 06
  • Reputation: 2
  • Geschlecht:Männlich
  • Wohnort:Berlin
  • Interessen:Bei WF vorbeischauen, Webprogrammierung, mit Freunden treffen oder irgendwas anderes...

geschrieben 07. Juni 2008 - 22:38

<script type="text/javascript">
<!--
function popup() {
if(navigator.userAgent.indexOf('MSIE') != -1)
{window.open(url,att,'status=no,resizable=no,scrollbars=yes,width=X,
height=Y');}
else {}
}
//-->
</script>

Sollte gehen... X und Y ist halt die Größe des PopUp... is halt ne ganz billige Variante xD

Dieser Beitrag wurde von N1truX bearbeitet: 07. Juni 2008 - 22:41

PC: AMD FX-8150 | Sapphire Radeon HD 5770 @OC-Bios | GA-990XA-UD3 - 4x4 GB DDR3-2133 | OCZ Agility II 128 GiB SSD (OS) & 10 TB-Storage-Server | Win7 Professional x64
NB: Sony Vaio VPCYB16 - AMD Fusion E-350 - 1x4 GiB Kingston DDR3-1333 - 64 GiB Super*Talent SSD
0

#13 Mitglied ist offline   Schnubbie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 112
  • Beigetreten: 02. Oktober 04
  • Reputation: 0

geschrieben 09. Juni 2008 - 19:11

Der fixed Befehl wird im IE6 einfach ignoriert und entweder als relative oder absolute gesetzt. (eins von beiden, ich weiß es gerade nicht, muss ich gestehen)

Und die JS Datei bringt dem IE 5 / 6 einige Sachen "bei", die erst der IE7 kann. Es wird also dem IE beigebracht das er den Befehlt position:fixed auch fixed darstellen soll und nicht anders, bringt ihm bei Alpha tansparente PNGs darzustellen etc.
Leider ist es nicht der 100% "IE7 Ersatz" für den IE6, aber sie arbeiten dran.
0

#14 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 09. Juni 2008 - 20:33

WOOOOW, Alpha tansparente PNGs im IE darstellen wäre super!!! Scheint ja ganz nützlich zu sein diese JavaScripts!
Und das alles gibts auf http://code.google.com/p/ie7-js/?
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0