zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden function()-Ausgabe wird immer in leere Seite geschrieben

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 14.06.2009, 20:50
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 13.02.2009
Beiträge: 13
grimmbo93 befindet sich auf einem aufstrebenden Ast
Standard function()-Ausgabe wird immer in leere Seite geschrieben

Hallo,
ich bin mittlerweise kurz vor'm Zusammenbruch. Ich versuche seit Stunden über eine Flash-Datei eine javascript-Funktion aufzurufen, die dann ein Layer mit einer weiteren Flash-Datei einblendet. Das funktioniert auch eigentlich. Nur soll die im Layer zu öffnende Flash-Datei mit aus der Funktion definierten Variablen geöffnet werden. Hier das Script:
HTML-Code:
<script src="data/AC_RunActiveContent_dw.js" type="text/javascript"></script>
<script src="data/AC_RunActiveContent_imap.js" type="text/javascript"></script>
<script type="text/javascript">
AC_FL_RunContent_dw( 'align','left','width','591','height','742','codebase','http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0','src','data/plan','quality','high','scale','exactfit','wmode','transparent','menu','true','bgcolor','#000040','swliveconnect','false','pluginspage','http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','data/plan' ); //end AC code
  </script>
<script type="text/javascript">
$ok = 0;
function einblenden($id, $kid, $kname, $text) {
   $ok = 1;
   $kid2 = $kid-1;
   $name = $kname.toLowerCase();
   document.getElementById($id).style.visibility = "visible";
}
function ausblenden($id) {
   document.getElementById($id).style.visibility = "hidden";
}
</script>
<div id="layer1" style="visibility:hidden; position: absolute; left: 100px; top: 100px; border:thick #333333 solid;">
<script type="text/javascript">
	  AC_FL_RunContent(
        'codebase', 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
        'width', '500',
        'height', '898',
        'align', 'middle',
        'src', 'data/loader.swf',
        'base', 'data/',
        'flashvars', 'datasource='+$name+'_'+$kid2+'.xml',
        'loop', 'false',
        'menu', 'true',
        'quality', 'best',
        'wmode', 'transparent',
        'bgcolor', '#ffffff',
        'allowscriptaccess', 'sameDomain',
        'pluginspage', 'http://www.macromedia.com/go/getflashplayer'
      );
    </script>
<a href="#" onclick="ausblenden('layer1')">Zu</a></div>
Im Flash-Dokument (eine Karte) gibt es vier Punkte, die beim Anklicken die Funktion einblenden() mit jeweils unterschiedlichen Parametern aufrufen. Im jetzigen Fall beschwert sich das Script (zurecht), dass bei 'datasource='+$name+'_'+$kid2+'.xml die beiden Variablen fehlen. Logisch, beim Aufruf der Seite existieren sie ja auch noch nicht. Wenn ich aber den Aufruf der Funktion "AC_FL_RunContent" in eine weitere Funktion packe,
HTML-Code:
<script src="data/AC_RunActiveContent_dw.js" type="text/javascript"></script>
<script src="data/AC_RunActiveContent_imap.js" type="text/javascript"></script>
<script type="text/javascript">
AC_FL_RunContent_dw( 'align','left','width','591','height','742','codebase','http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0','src','data/plan','quality','high','scale','exactfit','wmode','transparent','menu','true','bgcolor','#000040','swliveconnect','false','pluginspage','http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','data/plan' ); //end AC code
  </script>
<script type="text/javascript">
$ok = 0;
function einblenden($id, $kid, $kname, $text) {
   $ok = 1;
   $kid2 = $kid-1;
   $name = $kname.toLowerCase();
   document.getElementById($id).style.visibility = "visible";
   flash();
}
function ausblenden($id) {
   document.getElementById($id).style.visibility = "hidden";
}
</script>
<div id="layer1" style="visibility:hidden; position: absolute; left: 100px; top: 100px; border:thick #333333 solid;">
<script type="text/javascript">
   function flash() {
	  AC_FL_RunContent(
        'codebase', 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
        'width', '500',
        'height', '898',
        'align', 'middle',
        'src', 'data/loader.swf',
        'base', 'data/',
        'flashvars', 'datasource='+$name+'_'+$kid2+'.xml',
        'loop', 'false',
        'menu', 'true',
        'quality', 'best',
        'wmode', 'transparent',
        'bgcolor', '#ffffff',
        'allowscriptaccess', 'sameDomain',
        'pluginspage', 'http://www.macromedia.com/go/getflashplayer'
      ); };
    </script>
<a href="#" onclick="ausblenden('layer1')">Zu</a>
</div>
wird beim Anklicken eines Punktes auf der Flashkarte das neue Flash-Dokument in einer neu generierten Seite angezeigt und nicht mehr im Layer.

Bitte sagt mir, was ich verkehrt mache.

Mit freundlichen Grüßen

Steffen Grimm
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 14.06.2009, 22:58
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.918
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Eine Fehlermeldung gibt es keine?
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 15.06.2009, 16:34
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 13.02.2009
Beiträge: 13
grimmbo93 befindet sich auf einem aufstrebenden Ast
Standard

Im Internet-Explorer (& Firefox) wird lediglich unten links ein Achtung-Symbol angezeigt und beim Anklicken eine nähere Beschreibung. Wenn ich das Script ohne die zusätzliche Funktion ausführe, sagt er, dass $name undefiniert sei, wenn die Funktion dabei ist, wird keine Meldung angezeigt. Mir geht es ja nur darum, die Ausgabe des Flash-Dokuments, die ja über das Script erfolgt im Layer zu behalten und nicht in eine leere Seite zu lenken.

Hier hab ich mal die zweite Version des oben dargestellten Scripts hochgeladen. http://grimmbo93.gr.funpic.de/flash/test.html

PS: Das Bild im genauen Plan ist nur ein Platzhalter.

Geändert von grimmbo93 (15.06.2009 um 16:41 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 15.06.2009, 16:35
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.918
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Was heißt das? Gibt es eine Fehlermeldung oder keine? Du kennst die Fehlerkonsole im Firefox?
Mit Zitat antworten
  #5 (permalink)  
Alt 15.06.2009, 17:06
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 13.02.2009
Beiträge: 13
grimmbo93 befindet sich auf einem aufstrebenden Ast
Standard

Das heißt, dass $name nicht definiert ist. Bei der zweiten Version gibt es keine Fehlermeldung.
Mit Zitat antworten
  #6 (permalink)  
Alt 15.06.2009, 17:17
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.918
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Du setzt etwas vorraus was nicht allgemein bekannt ist, du arbeitest mit einem Skript von Adobe, hast du dir den Quellcode mal angeschaut?
Letztlich wird diese Funktion aufgerufen:
Code:
function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    {
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }

  document.write(str);
}
und ein document.write erzeugt immer ein neues Dokument, wenn es nach dem laden der Seite aufgerufen wird.
Mit Zitat antworten
  #7 (permalink)  
Alt 15.06.2009, 17:21
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 13.02.2009
Beiträge: 13
grimmbo93 befindet sich auf einem aufstrebenden Ast
Standard

Na gut und wie kann ich das ändern? (Ich bin nicht so sehr versiert in JavaScript - PHP liegt mir mehr!)
Mit Zitat antworten
  #8 (permalink)  
Alt 17.06.2009, 17:54
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 13.02.2009
Beiträge: 13
grimmbo93 befindet sich auf einem aufstrebenden Ast
Standard

Weiß denn keiner eine Antwort?
Mit Zitat antworten
  #9 (permalink)  
Alt 17.06.2009, 18:25
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.918
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Naja, du musst dieses Skript umschreiben oder ein Anderes nehmen.
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 17.06.2009, 18:38
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 13.02.2009
Beiträge: 13
grimmbo93 befindet sich auf einem aufstrebenden Ast
Standard

Aber inwiefern umschreiben? Wie bereits erwähnt, kenne ich mich Javascript nicht so gut aus.
Mit Zitat antworten
Sponsored Links
Antwort

Stichwörter
flash, funktion, javascript, karte, neues dokument

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Element ausserhalb seite positionieren, so daß keine scrollbar entsteht st-SaHiB CSS 5 20.07.2009 08:49
Nach klick auf menüpunkt soll die gewünschte seite in der seite erscheinen rs-web CSS 45 17.07.2009 14:16
Überprüfen, ob eine Seite von einer externen Seite im Frameset geladen wurde naitsab Javascript & Ajax 2 11.05.2009 18:53
Fixer Header (CSS Frame) und Sprung zu Anker auf dieser Seite Chico_wau CSS 2 14.05.2007 18:08
Navigation links und oben soll aktive Seite anzeigen Zischel CSS 2 16.02.2007 22:30


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:25 Uhr.