\r
+var \r
+ X_System_postMessageAccessKey = window.postMessage ? Math.random() * 10000 | 0 : 0,\r
+ \r
+ X_System_MESSAGE_RECIVERS = X_System_postMessageAccessKey && {},\r
\r
-var X_System = X_Class_override(\r
- new X.EventDispatcher(),\r
- {\r
- monitor : function(){\r
+ X_System = X_Class_override(\r
+ new X.EventDispatcher(),\r
+ {\r
+ monitor : function(){\r
+ \r
+ },\r
+ \r
+ gc : function(){\r
+ \r
+ },\r
\r
- },\r
- \r
- gc : function(){\r
+ message : function( name, callback ){\r
+ var key = Math.random() * 10000 | 0;\r
+ if( !X_System_postMessageAccessKey ) return;\r
+ // name にスペースは含まない\r
+ X_System_MESSAGE_RECIVERS[ name + key ] = callback;\r
+ X_ViewPort.listen( 'message', X_System );\r
+ \r
+ return X_System_postMessageAccessKey + '-' + name + key;\r
+ },\r
\r
+ handleEvent : function( e ){\r
+ var i, _i, name;\r
+ switch( e ){\r
+ case 'message' :\r
+ if( e.origin === X.URL.BASE_URL ){\r
+ i = e.data.indexOf( '-' );\r
+ console.log( 'msg ||| ' + e.data.substr( 0, i ) );\r
+ if( e.data.substr( 0, i ) == X_System_postMessageAccessKey ){\r
+ name = e.data.substr( i, _i = e.data.indexOf( ' ' ) );\r
+ if( X_System_MESSAGE_RECIVERS[ name ] ){\r
+ X_System_MESSAGE_RECIVERS[ name ]( e.data.substr( _i + name.length ) );\r
+ };\r
+ };\r
+ };\r
+ console.log( e.origin + ' ' + X.URL.BASE_URL );\r
+ \r
+ return X_Callback_PREVENT_DEFAULT | X_Callback_STOP_PROPAGATION;\r
+ };\r
+ }\r
}\r
- }\r
-);\r
+),\r
+\r
+X_System_javascriptScore;\r
\r
// beforeunload\r
// unload\r
\r
X_TEMP.onRearchEndOfScript = function(){\r
var callbacks = X_TEMP.onSystemReady,\r
- i = callbacks.length;\r
+ i = callbacks.length,\r
+ now = X_Timer_now(),\r
+ speed = now - X.bootTime;\r
+ \r
+ X_System_javascriptScore = speed;\r
+ console.log( 'js score ' + speed );\r
+ \r
delete X_TEMP.onRearchEndOfScript;\r
delete X_TEMP.onSystemReady;\r
\r