| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | <!--	/*		Copyright (c) 2004-2011, The Dojo Foundation		All Rights Reserved.			Licensed under the Academic Free License version 2.1 or above OR the		modified BSD license. For more information on Dojo licensing, see:				http://dojotoolkit.org/community/licensing.shtml	*/--><!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" xml:lang="en" lang="en"><head>	<title></title>	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>	<!-- Security protection: uncomment the start and end script tags to enable. -->	<!-- script type="text/javascript" -->	// <!--		function pollHash(){		//Can't use location.hash because at least Firefox does a decodeURIComponent on it.		var urlParts = window.location.href.split("#");		if(urlParts.length == 2){			var newHash = urlParts[1];			if(newHash != xipCurrentHash){				try{					callMaster(xipStateId, newHash);				}catch(e){					//Make sure to not keep processing the error hash value.					xipCurrentHash = newHash;					throw e;				}				xipCurrentHash = newHash;			}		}	}	function unpackMessage(encodedMessage){		var parts = encodedMessage.split(":");		var command = parts[1];		encodedMessage = parts[2] || "";		var config = null;		if(command == "init"){			var configParts = encodedMessage.split("&");			config = {};			for(var i = 0; i < configParts.length; i++){				var nameValue = configParts[i].split("=");				config[decodeURIComponent(nameValue[0])] = decodeURIComponent(nameValue[1]);			}		}		return {command: command, message: encodedMessage, config: config};	}	//************** Init **************************	xipCurrentHash = "";		//Decode the init params	var fragId = window.location.href.split("#")[1];	var config = unpackMessage(fragId).config;	xipStateId = config.id;	xipMasterFrame = parent.parent;	//Set up an HTML5 messaging publisher if postMessage exists.	//As of this writing, this is only useful to get Opera 9.25+ to work.	if(typeof document.postMessage != "undefined"){		callMaster = function(stateId, message){			xipMasterFrame.document.postMessage(stateId + "#" + message);		}	}else{		var parts = config.callback.split(".");		xipCallbackObject = xipMasterFrame;		for(var i = 0; i < parts.length - 1; i++){			xipCallbackObject = xipCallbackObject[parts[i]];		}		xipCallback = parts[parts.length - 1];		callMaster = function(stateId, message){			xipCallbackObject[xipCallback](stateId + "#" + message);		}	}	//Call the master frame to let it know it is OK to start sending.	callMaster(xipStateId, "0:loaded");		//Start counter to inspect hash value.	setInterval(pollHash, 10);	// -->	<!-- </script> --></head><body>	<h4>The Dojo Toolkit -- xip_client.html</h4>	<p>This file is used for Dojo's XMLHttpRequest Iframe Proxy. This is the "client" file used	internally by dojox.io.proxy.xip.</p></body></html>
 |