Zugriffsproblem per Javescript /Frameset im CMS
derTom
- javascript
Hallo,
zur Situation:
Ich benutze ein Frameset. In den einem Frame ist die index.php vom cms eingebunden. In den anderen Frame läuft ein Mp3 Player, dieser Frame ist nicht sichtbar. Gesteuert wird der Player per Javascript.
Das klappt wunderbar solange ich "wahrscheinlich" auf der Startseite bleibe sprich der index.php die im Frameset angegeben ist. Sobald ich auf eine ander Site navigiere verbietet mir javascript den Zufgriff auf diesen Frame...ich glaube "same origin policy".
Das Frameset ist dummerweise nötig damit die Musik durchgehend dudelt.
Hier der Code des Framesets.
Vielleicht ist auch meine Zugriffsmethode falsch. Aber ich denke das Problem ist anderer Natur...hat jemand eine Lösung parat?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Traumtaenzer-le.de</title>
</head>
<frameset rows="0,*" border="0" noresize scrollbars="no">
<frame src="mp3_player.html" name="traumtaenzer_music_player">
<frame src="index.php" name="traumtaenzer_le">
<noframes>
Your Browser can not display this site!
</noframes>
</frameset>
</html>
Und hier ein Auszug aus dem Javascript:
if(parent.frames['traumtaenzer_music_player'].document.getElementById('background_music'))
{
var applet_status = parent.frames['traumtaenzer_music_player'].document.background_music.GetRate();
var track_status = parent.frames['traumtaenzer_music_player'].document.background_music.GetTime();
if(applet_status == '0' && pressed_button == '1')
{
parent.frames['traumtaenzer_music_player'].document.background_music.Play();
document.getElementById('button_box_1').src = button_pause.src;
}
if(applet_status == '1' && pressed_button == '1' && track_status > '0')
{
parent.frames['traumtaenzer_music_player'].document.background_music.Stop();
document.getElementById('button_box_1').src = button_play.src;
}
Das lustige ist...das ganze hat mal funktioniert.
hi,
Das klappt wunderbar solange ich "wahrscheinlich" auf der Startseite bleibe sprich der index.php die im Frameset angegeben ist. Sobald ich auf eine ander Site navigiere verbietet mir javascript den Zufgriff auf diesen Frame...ich glaube "same origin policy".
Die käme dann ins Spiel, wenn du auf Seiten von fremden Domains zuzugreifen versuchst. Ist denn das der Fall?
Und wie genau äußert sich das "verbieten"?
gruß,
wahsaga
Die käme dann ins Spiel, wenn du auf Seiten von fremden Domains zuzugreifen versuchst. Ist denn das der Fall?
Eigentlich nicht. Ich rufe eine andere Site des CMS auf d.h. Bsp. index.php?page=458...
Im Seitentemplate wird jeweils die Javascript Datei neugeladen.
Und wie genau äußert sich das "verbieten"?
Mit diesen beiden Fehlermeldung im Moz:
Fehler: uncaught exception: Die Erlaubnis für den Aufruf der Methode Location.toString wurde verweigert
Fehler: uncaught exception: Die Erlaubnis für das Lesen der Eigenschaft HTMLDocument.background_music wurde verweigert
Daher meine Vermutung, das das irgendwie mit der geänderten URL zusammen hängt.
Wie gesagt auf dem Server ging das ganze bis ich meine locale Version geuped habe.
Ich habs gebacken bekommen. Es hang mit der url zusammen. Durch eine andere config.php local bei mir, wurden urls anderes behandelt.
Daher der javascript error.
Trotzdem vielen Dank für eure schnelle Hilfe.
Grüße Tom