-/*\r
+/**\r
* http://msdn.microsoft.com/ja-jp/library/ie/hh180174%28v=vs.85%29.aspx\r
* 孤立するとウィンドウ オブジェクトのプロパティが消去される\r
* \r
* http://qiita.com/sou/items/3380d4fa9b08b27bb387\r
* モバイルブラウザでの iframe の挙動(Mobile Safari, Chrome for Android)\r
+ * \r
+ * @alias X.Util.NinjaIframe\r
+ * @class 隠し iframe 機能を提供します。\r
+ * @constructor \r
+ * @constructs NinjaIframe\r
+ * @extends {Node}\r
*/\r
-\r
-// TODO Node.inherits\r
-X[ 'Util' ][ 'NinjaIframe' ] = Node[ 'inherits' ](\r
+var X_NinjaIframe = X[ 'Util' ][ 'NinjaIframe' ] = Node[ 'inherits' ](\r
'NinjaIframe',\r
{\r
autoRefresh : 0,\r
\r
if( html ) this._contentHTML = html; \r
\r
- this[ 'appendTo' ]( X_Node_body /* X_Node_systemNode */ );\r
+ this[ 'appendTo' ]( X_Node_body /* X_Node_systemNode */ )\r
+ [ 'listenOnce' ]( X_EVENT_KILL_INSTANCE, X_Util_NinjaIframe_handleEvent );\r
\r
X_ViewPort[ 'listenOnce' ]( X_EVENT_AFTER_UPDATE, this, X_Util_NinjaIframe_handleEvent );\r
},\r
};\r
\r
return this;\r
- },\r
- \r
- // TODO close -> kill\r
- 'close' : function(){\r
- X_ViewPort[ 'unlisten' ]( X_EVENT_AFTER_UPDATE, this, X_Util_NinjaIframe_handleEvent );\r
- this.call( 'close' );\r
- this[ 'kill' ]();\r
}\r
\r
}\r
case 'error' :\r
this[ 'asyncDispatch' ]( 'ninjaerror' );\r
break;\r
+ \r
+ case X_EVENT_KILL_INSTANCE :\r
+ X_ViewPort[ 'unlisten' ]( X_EVENT_AFTER_UPDATE, this, X_Util_NinjaIframe_handleEvent );\r
+ this._iwin && this._iwin.close();\r
+ break;\r
};\r
\r
- return X_Callback_STOP_PROPAGATION;\r
+ return X_CALLBACK_STOP_PROPAGATION;\r
};\r
\r
function X_Util_NinjaIframe_writeToIframe( that ){\r