mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 28.03.2024 12:21 Benutzername: Passwort: Auto-Login

Thema: jquery FF und IE8 Problem vom 25.03.2011


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> jquery FF und IE8 Problem
Autor Nachricht
raz0rback
Threadersteller

Dabei seit: 18.03.2011
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 25.03.2011 11:05
Titel

jquery FF und IE8 Problem

Antworten mit Zitat Zum Seitenanfang

Ich habe ein seltsames Problem mit jquery, Cookies und dem Ausführen eines Scriptes.

Je nach Platzierung im Code, funktioniert es entweder nur im FF oder nur im IE8.
Das Script funktioniert also eigentlich, aber leider nicht zur gleichen Zeit in beiden Browsern.

Hier mal das Script:

Code:
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery_cookie.js"></script>
 <script type="text/javascript">
      $(document).ready(function() {
      if($.cookie("show_closed") == "1") {
             var changeMe = document.getElementById("flashContent");
              changeMe.height = 40;
         }
      });
</script>


Wenn ich diesen Code in den BODY setze, funktioniert er nur im FIREFOX
Wenn ich diesen Code in den HEAD setze, funktioniert er nur im IE8

Ich bin jetzt kein Spezialist und hab nur durch herumspielen überhaupt herausgefunden, wie ich es abwechselnd zum Laufen bringen konnte. Gibt es eine Möglichkeit es in beiden gleichzeitig hinzukriegen?

Ach ja und der Cookie wird in einer anderen Funktion gesetzt und das setzen funktioniert. Nur das Auslesen selbst irgendwie nicht.
  View user's profile Private Nachricht senden
snuwie

Dabei seit: 06.07.2010
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 25.03.2011 11:15
Titel

Antworten mit Zitat Zum Seitenanfang

Rufst du die "$(document).ready(function() { " Funktion mehrfach auf?

Poste bitte mal den kompletten Code ...
  View user's profile Private Nachricht senden
Anzeige
Anzeige
raz0rback
Threadersteller

Dabei seit: 18.03.2011
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 25.03.2011 11:19
Titel

Antworten mit Zitat Zum Seitenanfang

Die funktion "resize" wird von der SWF Datei ausgeführt. Das funktioniert 100% in beiden Browsern.

Hier kompletter Code:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
   <head>
      <title>SWFObject 2 static publishing example page</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<script src="swfobject.js" type="text/javascript"></script>

<script type="text/javascript">
var flashvars = {};
var params = { allowscriptaccess: "always"};
swfobject.embedSWF("close.swf", "flashContent", "607", "465", "9.0.0", "", flashvars, params );
</script>
<script type="text/javascript">
function resize() {
 var changeMe = document.getElementById("flashContent");
 changeMe.height = 40;
 $.cookie("show_closed","1",{expires: 100000});
}
</script>
   </head>
   <body>
<div>sdfsdfsdf</div>
<div id="flashContent"></div>   


   <div>

dfsdfsdfsdfsdfsdfsdf</div>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery_cookie.js"></script>
 <script type="text/javascript">
      $(document).ready(function() {
      if($.cookie("show_closed") == "1") {
             var changeMe = document.getElementById("flashContent");
              changeMe.height = 40;
         }
      });
</script>
</body>
</html>


So funktioniert es in FF.

Noch zur Erklärung:
Ich möchte, dass wenn man einen Close-Button in der SWF drückt ein Cookie gespeichert wird. Ist dieser Cookie bereits vorhanden, soll eben wieder das gleiche angezeigt werden. Also "die Person hat bereits geschlossen, zeige nur 40px Höhe an"

So funktioniert es in IE8
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
   <head>
      <title>SWFObject 2 static publishing example page</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery_cookie.js"></script>
<script src="swfobject.js" type="text/javascript"></script>

<script type="text/javascript">
var flashvars = {};
var params = { allowscriptaccess: "always"};
swfobject.embedSWF("close.swf", "flashContent", "607", "465", "9.0.0", "", flashvars, params );
</script>
<script type="text/javascript">
function resize() {
 var changeMe = document.getElementById("flashContent");
 changeMe.height = 40;
 $.cookie("show_closed","1",{expires: 100000});
}
</script>
   </head>
   <body>
<div>sdfsdfsdf</div>
<div id="flashContent"></div>   

 <script type="text/javascript">
      $(document).ready(function() {
      if($.cookie("show_closed") == "1") {
             var changeMe = document.getElementById("flashContent");
              changeMe.height = 40;
         }
      });
</script>
   <div>

dfsdfsdfsdfsdfsdfsdf</div>
      
</body>
</html>


* Keine Ahnung... *


Zuletzt bearbeitet von raz0rback am Fr 25.03.2011 11:37, insgesamt 3-mal bearbeitet
  View user's profile Private Nachricht senden
raz0rback
Threadersteller

Dabei seit: 18.03.2011
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 25.03.2011 12:05
Titel

Antworten mit Zitat Zum Seitenanfang

Ich hab die Lösung... zumindest ist es eine

Scheinbar vertragen sich SWFObject2 und jquery im head nicht. Hab jetzt das SWFObject2 in den body, nun gehts Ooops

Darf ich mal dazwischen fragen, warum man generell Scripte in den head und warum in den body steckt?
  View user's profile Private Nachricht senden
pantonine

Dabei seit: 03.03.2011
Ort: gehen Sie bitte weiter…
Alter: -
Geschlecht: -
Verfasst Fr 25.03.2011 16:36
Titel

Antworten mit Zitat Zum Seitenanfang

Möglicherweise ist swfObject schlecht programmiert, dass es
a) in einem der Browser einen Fehler erzeugt und so die Fortführung von JS verhindert
b) das DOM-Ready überschreibt

Zitat:
warum man generell Scripte in den head und warum in den body steckt?

Head ist die klassische Variante. Die Position ist entscheidend, wann das Script geladen (und ausgeführt) wird. Gut programmierte Scripte sollten heutzutage ganz unten in den Body, weil Clients nur wenige Verbindungen gleichzeitig aufbauen können und so nicht warten müssen, bis Javascript geladen ist. "Gut" heißt in diesem Zusammenhang auch, dass das JS erst ausgeführt wird, wenn alle nötigen Element geladen sind - jQuery benutzt dazu .ready(). Früher war das auch ein Grund, JS nach unten zu schreiben: Das verhinderte Fehler beim Zugriff auf body-Elemente.
Die wenigen JS-Scripte, die ohne DOM direkt HTML-Ausgaben schreiben, müssen an die jeweilige Stelle in den Code gesetzt werden.
  View user's profile Private Nachricht senden
raz0rback
Threadersteller

Dabei seit: 18.03.2011
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 28.03.2011 11:19
Titel

Antworten mit Zitat Zum Seitenanfang

Danke dir!

Ja das hat funktioniert. Alles einfach ganz unten in den body. So ist alles an einem Platz und nix kommt sich in die Quere.
Es funktioniert nun auch fast alles was ich wollte, komme aber nun endlich auch alleine klar Lächel
  View user's profile Private Nachricht senden
 
Ähnliche Themen Problem mit CSS & JQuery
problem mit jquery und ie
jQuery Problem
jquery: Problem mit Safari
Problem mit Jquery und dem Ipad
css zentrierungs problem und jquery callback
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.