• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] window.top.frames in Google Chrome

Warsnake

New member
Guten Morgen,

ich habe ein kleines Problem mit meinem Script. Im Explorer funktioniert diese Zeile wunderbar. Bei Google Chrome gibt er mir einen Fehler raus
"Cannot read property 'location' of undefined"


Code:
if((window.top.frames['MAINFRAME'].document.location+'').indexOf('/empty.html') != -1) window.top.frames['MAINFRAME'].document.location='../../game.php';
Wie muss ich die Zeile umändern damit sie in Chrome funktioniert?
Vielen Dank für eure hilfe!

Hier die Komplette Datei:
Code:
<?php
header("Expires: now");

include "../../libs/db_conn.php"; // Database connection
include "../../libs/misc_util.php";

// Init a pseudo user
$userid=0;
$uservals=array();

//Retreive user info
login();

// No user has been retreiven, back the mainpage
if($userid == 0)
{
	$db->Close();
	//header("Location: index.php");
	echo "<SCRIPT>\n";
	echo "window.top.document.location='index.php';\n";
	echo "</SCRIPT>\n";
	exit;
}

include "../../skins/skin_loader.php";

echo "<html>\n";
echo "<head>\n";
echo "<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>\n";
echo "<meta http-equiv='imagetoolbar' content='no' />\n";
echo "<link href=../../normal.css?VER=3	rel=stylesheet type=text/css>\n";


$zoom=false;
$fullscreen=false;
if($uservals["FULLSCREEN"] == "Y")
{
	$nobanner=true;
	$fullscreen=true;
}
else if($uservals["FULLSCREEN"] == "Z")
{
	$nobanner=true;
	$fullscreen=true;
	$zoom=true;
}
var_dump($fullscreen);

if($zoom)
	echo "<link href=generic_map.php?CMD=STYLESHEET&VER=31&SKIN=$skin&FULLSCREEN=Y&ZOOM=2 rel=stylesheet type=text/css>\n";	
else if($fullscreen)
	echo "<link href=generic_map.php?CMD=STYLESHEET&VER=31&SKIN=$skin&FULLSCREEN=Y&ZOOM=1 rel=stylesheet type=text/css>\n";	
else
	echo "<link href=generic_map.php?CMD=STYLESHEET&VER=31&SKIN=$skin&ZOOM=1 rel=stylesheet type=text/css>\n";
	//$header.="<link href=generic_map.php?CMD=STYLESHEET&VER=".time()."&SKIN=$skin&ZOOM=1 rel=stylesheet type=text/css>\n";

echo "<body leftmargin=0 topmargin=0 marginwidth=0 marginheight=0 ".skin_background()." onresize=''>\n";

echo "<DIV ID=STORED_IMG STYLE='position: absolute; visibility: visible; height: 1; width: 1; left: -10; top: -10; overflow: hidden'></DIV>";
echo "<DIV ID=FIXED_IMG STYLE='position: absolute; visibility: visible; height: 1; width: 1; left: -10; top: -10; overflow: hidden'><IMG SRC=../../images/chat_bubble_arrow.gif><IMG SRC=../../images/chat_bubble_top.gif><IMG SRC=../../images/chat_bubble_bottom.gif><IMG SRC=../../images/working.gif><IMG SRC=../../images/battle.gif><IMG SRC=../../images/mbattle.gif></DIV>";


if($fullscreen)
{
	// Div used to show the background tiles
	//echo "<DIV id=BG_TILES STYLE='position: absolute; visibility: hidden; overflow: hidden; top: 0; left: 185; width:448; height:448;'>";
	echo "<DIV id=BG_TILES STYLE='position: absolute; visibility: hidden; top: 0; left: 0; width:448; height:448; overflow: hidden;'>";
	if($zoom)
		echo "<IMG SRC=../../images/spacer.gif WIDTH=25600 HEIGHT=25600>";
	else
		echo "<IMG SRC=../../images/spacer.gif WIDTH=12800 HEIGHT=12800>";
	for($x=0;$x < 7;$x++)
		for($y=0;$y < 7;$y++)
			echo "<DIV id=UNDER_MAP_".$x."_".$y."><IMG NAME=IMG_".$x."_".$y." class=SPR></DIV>";
	
	for($y=0;$y < 7;$y++)
		for($x=0;$x < 7;$x++)
			echo "<DIV id=OVER_OBJ_".$x."_".$y."><IMG NAME=OBJ_".$x."_".$y." class=SPR></DIV>";

	echo "<DIV ID=ICURPLAYER STYLE='position: absolute;left: 0;top: 0; width: 16; height; 16;'><IMG NAME=CURPLAYER CLASS=SPR></DIV>";
	
	//echo "<DIV id=MAP_CLICK STYLE='position: absolute; visibility: visible; top: 0; left: 0; width:".($zoom?"25600":"12800")."; height:".($zoom?"25600":"12800")."; background-Color: #FFFFFF;filter: alpha(opacity=1); opacity: 0.01; -moz-opacity: 0.01;' OnClick=\"cell_click(event,185,0)\"></DIV>";
	for($i=0;$i < 10;$i++)
		echo "<DIV ID=USER_$i STYLE='position: absolute; left: 0; top: 0; visibility: hidden; width: ".($zoom?"128":"64")."; z-index:1000'></DIV>";
		//echo "<DIV ID=USER_$i STYLE='position: absolute; left: 0; top: 0; visibility: hidden; width: ".($zoom?"128":"64")."; overflow: hidden; z-index:1000'></DIV>";
		
	for($i=0;$i < 3;$i++)
		echo "<DIV ID=LIFE_$i STYLE='position: absolute; left: -100; top: -100; visibility: hidden;'><IMG ID=LIFE_IMG_$i  SRC=../../life/0_n.gif WIDTH=16 HEIGHT=16></DIV>";
	echo "</DIV>";
	
	echo "<DIV id=MAP_CLICK STYLE='border: solid 2px #E00000; position: absolute; visibility: visible; top: 0; left: 0; width:448; height:448; background-Color: #FFFFFF;filter: alpha(opacity=0); opacity: 0; -moz-opacity: 0.01;' OnClick=\"cell_click(event,0,0)\" oncontextmenu=\"show_contextmenu(event);return false;\"></DIV>";	
}
else
{
	// Div used to show the background tiles
	echo "<DIV id=BG_TILES STYLE='position: absolute; visibility: hidden; top: 0; left: 0; width:448; height:448; overflow: hidden;'>";
	echo "<IMG SRC=../../images/spacer.gif WIDTH=12800 HEIGHT=12800>";
	for($x=0;$x < 8;$x++)
		for($y=0;$y < 8;$y++)
			echo "<DIV id=UNDER_MAP_".$x."_".$y."><IMG NAME=IMG_".$x."_".$y." class=SPR></DIV>";

	// Div used to display the objects
	for($y=0;$y < 8;$y++)
		for($x=0;$x < 8;$x++)
			echo "<DIV id=OVER_OBJ_".$x."_".$y."><IMG NAME=OBJ_".$x."_".$y." class=SPR></DIV>";

	echo "<DIV ID=ICURPLAYER STYLE='position: absolute;left: 192; width: 16; height; 16; top: ".(127+skin_title_height()).";'><IMG NAME=CURPLAYER CLASS=SPR></DIV>";
	for($i=0;$i < 10;$i++)
		echo "<DIV ID=USER_$i STYLE='position: absolute; left: 0; top: 0; visibility: hidden; width: ".($zoom?"128":"64")."; z-index:1000'></DIV>";
		//echo "<DIV ID=USER_$i STYLE='position: absolute; left: 0; top: 0; visibility: hidden; width: ".($zoom?"128":"64")."; overflow: hidden; z-index:1000'></DIV>";

	for($i=0;$i < 3;$i++)
		echo "<DIV ID=LIFE_$i STYLE='position: absolute; left: -100; top: -100; visibility: hidden;'><IMG ID=LIFE_IMG_$i  SRC=../../life/0_n.gif WIDTH=16 HEIGHT=16></DIV>";
		
	echo "</DIV>\n";
	
	echo "<DIV id=MAP_CLICK STYLE='position: absolute; visibility: visible; top: 0; left: 0; width:448; height:448; background-Color: #FFFFFF;filter: alpha(opacity=0); opacity: 0; -moz-opacity: 0.01;' OnClick=\"cell_click(event,0,0)\" oncontextmenu=\"show_contextmenu(event);return false;\"></DIV>";	
}

echo "<DIV ID=DIALOG_DIV STYLE='position:absolute; left:0; top:0; width: 150; visibility: hidden; background-color: #FFFF99; border: 1px solid #FF9900; padding:3px;font-size: 10px;'></DIV>\n";				

if($fullscreen)
{
	echo "</DIV>";
	echo "<DIV ID=QUICKSLOT STYLE='position: absolute; visibility: visible; top: 500; left: 5;z-index:2000;'>";
}
else
	echo "<DIV STYLE='position: absolute; visibility: visible; top: 420; left: 10;z-index:2000;'>";

echo "</DIV>\n";

if($fullscreen)
{
	echo "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100% BGCOLOR=".skin_even_color()." STYLE='border: solid 1px ".skin_command_color().";'>";
	echo "<TR><TD BGCOLOR=".skin_command_color()." STYLE='color:#FFFFFF; font-weight: bold;' ALIGN=CENTER>".t("Chat log")."</TD></TR>";
	echo "<TR><TD STYLE='padding: 2px;'>";
	echo "<DIV ID=CHATLOG STYLE='overflow: auto; width: 100%; height: 150;'></DIV>";
	echo "</TABLE>";
	echo "</DIV>";		
}
else
{
	echo "<DIV STYLE='position: absolute; visibility: visible; top: 460; left: 0; width: 448;z-index:2001;'>";
	echo "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100% BGCOLOR=".skin_even_color()." STYLE='border: solid 1px ".skin_command_color().";'>";
	echo "<TR><TD BGCOLOR=".skin_command_color()." STYLE='color:#FFFFFF; font-weight: bold;' ALIGN=CENTER>".t("Chat log")."</TD></TR>";
	echo "<TR><TD STYLE='padding: 2px;'>";
	echo "<DIV ID=CHATLOG STYLE='overflow: auto; width: 100%; height: 150;'></DIV>";
	echo "</TABLE>";
	echo "</DIV>";
}

$showminimap="false";
$showminimonsters="false";



if($fullscreen)
	echo "<DIV id=MESSAGES class=MESSAGES STYLE='z-index:2003;'>";
else
	echo "<DIV id=MESSAGES class=MESSAGES STYLE='top: 118; left: 453;z-index:2003;'>";

echo "<B>".t("Nachrichtenfenster:")."</B><BR><BR>".t("Bitte warten.. Lade...")."<BR><BR>\n";
echo "</DIV>\n";

if($fullscreen)
	echo "<DIV id=MINIMAP CLASS=MINIMAP STYLE='z-index:2004;'>";
else
	echo "<DIV id=MINIMAP CLASS=MINIMAP STYLE='top: 245; left: 453;z-index:2004;'>";
if($ismappable == 'N')
	echo "<IMG ID=MINIMAP_IMG SRC=../../images/spacer.gif ";
else
	echo "<IMG ID=MINIMAP_IMG SRC=minimap.php?RAND=".time()." ";
echo "  BORDER=0 WIDTH=198 HEIGHT=198>";
echo "</DIV>\n";
if($ismappable == 'N' || $ismappable == 'P')
	echo "<DIV id=MINIMAPPOS CLASS=MINIMAPPOSNONE STYLE='z-index:2005;'></DIV>\n";
else
	echo "<DIV id=MINIMAPPOS CLASS=MINIMAPPOS STYLE='z-index:2005;'><IMAGE SRC=../../images/spacer.gif WIDTH=2 HEIGHT=2></DIV>\n";
if($fullscreen)
	echo "<DIV id=MINIMONSTERS CLASS=MINIMONSTERS STYLE='z-index:2006;'></DIV>";
else
	echo "<DIV id=MINIMONSTERS CLASS=MINIMONSTERS STYLE='top: 245; left: 453;z-index:2006;'></DIV>";
if($fullscreen)
	echo "<DIV ID=MINIMAPTRANSP STYLE='position: absolute; left: 182; top: 2;z-index:2007;'><A HREF=#  OnClick='ChangeMapTransp();return false;' OnMouseOver='show_help_box(event,\"".t("Enable / Disable mini-map transparency.")."\");' OnMouseOut='hide_help_box()'><IMG SRC=../../images/transp_eye.gif WIDTH=15 HEIGHT=14 BORDER=0></A></DIV>";

echo "<DIV ID=MAPMENU STYLE='position: absolute; left: 0; top: 0; visibility: hidden; width: 100; background-Color: ".skin_even_color()."; border: solid 1px #000000; padding: 3px;'></DIV>";	
	
echo "<SCRIPT>neabCom=true;</SCRIPT>\n";
$s=stat("map_script.js");
echo "<SCRIPT SRC=map_script.js?v=".$s["mtime"]."></SCRIPT>\n";

echo "<DIV id=WAIT_LOADING STYLE='background-Color: ".skin_even_color()."; position: absolute; visibility: visible; top: 0; left: 0; width:100%;font-size: 20px; height:100%;z-index:10000;' ALIGN=CENTER>";
echo "<BR><BR><DIV ID=WAIT_LOADING_TEXT>".t("Map wird geladen.. einen Augenblick... <br><br>Falls es nicht klappt, klicke <a href='top.window.MAINFRAME.location.reload(true);'>HIER</a>")."</DIV>";

echo "</DIV>";
echo "<SCRIPT>\n";
echo "var mapScriptVersion=".$s["mtime"].";\n";
if($fullscreen)
	echo "fullscreen=true;\n";
else
	echo "fullscreen=false;\n";
if($zoom)
	echo "zoom=true;\n";
else
	echo "zoom=false;\n";
echo "</SCRIPT>\n";
?>
<SCRIPT>
var stored_images=new Array();
var imgToAdd='';
var resizetimeout=null;
document.onresize=do_resize;

var imagesObjects=new Array();
var toload=0;
var totalToLoad=0;
var loadOperationFinished=false;
var loadCompleted=false;

function ImageLoaded()
{
	toload--;
	if(document.getElementById('WAIT_LOADING') != null && totalToLoad != 0)
	{
		document.getElementById('WAIT_LOADING_TEXT').innerHTML='<BR><BR><?= t("Loading:") ?> '+Math.floor((totalToLoad-toload)*100/totalToLoad)+'%';
	}
	if(toload <= 0 && loadOperationFinished && loadCompleted == false)
	{
		loadCompleted=true;
		InitIFrameMap();
		totalToLoad=0;
	}
}

function StoreImage(imageName,inMap)
{
	if(stored_images[imageName] == undefined || stored_images[imageName] == null)
	{
		if(inMap == null || inMap == undefined)
		{
			loadCompleted=false;
			loadOperationFinished=false;
			toload++;
			totalToLoad++;
		}
		imgToAdd+='<IMG SRC=../../'+imageName+'>';
		stored_images[imageName]=true;
		var img=new Image();
		if(inMap == null || inMap == undefined)
		{
			img.onload=img.onerror=img.onabort=ImageLoaded;
			imagesObjects[imagesObjects.length]=img;
			document.getElementById('WAIT_LOADING').style.visibility="visible";	
			window.top.document.getElementById('MAPGRID').style.visibility="visible";
		}
		img.src=imageName;
	}
}

function FinishStorage(inMap)
{
	if(inMap == null || inMap == undefined)
	{
		loadOperationFinished=true;
		if(toload <= 0)
		{
			loadCompleted=true;
			InitIFrameMap();
			totalToLoad=0;
		}
		else
			window.top.document.getElementById('MAPGRID').style.visibility="visible";
	}
	document.getElementById('STORED_IMG').innerHTML+=imgToAdd;
	imgToAdd='';
}

if(window.top.frames['MAINFRAME'] != null && window.top.frames['MAINFRAME'].showplayerpos != null)
	setTimeout('window.top.frames["MAINFRAME"].preload_images();',200);
	
	//alert(window.top.frames['MAINFRAME'].document.location+'');
	
	
if((window.top.frames['MAINFRAME'].document.location+'').indexOf('/empty.html') != -1) window.top.frames['MAINFRAME'].document.location='../../game.php'

</SCRIPT>
 
Ich kenne mich leider nicht so gut mit Javascript aus. Mein Fachgebiet ist PHP.
Deswegen kann ich da nicht viel mit anfangen :)
Mir geht es nur darum wie es aussehen muss damit es funktioniert :D

Viele Grüße,
 
10 zeichen, weil min. 10 zeichen als post eingegeben werden müssen, wobei zitate nicht zählen.
meine antwort war also das zitat aus dem mdn, mit markierung der wichtigen stellen
oder um es auf den punkt zu bringen, 'MAINFRAME' ist kein arrayindex
desweiteren, warum gehst du über window.top?
warum frames?
 
Zuletzt bearbeitet von einem Moderator:
Das war schon ein fertiges Script :D Wie gesagt, ich kenne mich nicht gut damit aus.
Aber im Internet Explorer funktioniert die Zeile ja, da läd er die seite,
nur bei Chrome nicht..
 
Du arbeitest anscheinend mit dem Quirksmode (nicht zu empfehlen). Das könnte ev. das abweichende Verhalten des IEs erklären.

Aber für eine definitive Antwort brauchen wir den HTML-Code (nicht PHP!) des Framesets.

PS: In welchem IE funktioniert das denn?

@hesst: auf die Frames kann man auch über den Namen zugreifen. Wenn der Frame also wirklich "MAINFRAME" heißt, sollte das eigentlich auch im Chrome funktionieren.
 
Zurück
Oben