checkbox : true\r
},\r
\r
+// 自由な内容が入るため、参照文字への変換が必要\r
+X_Node_Attr_toChrReferance = {\r
+ value : true,\r
+ title : true,\r
+ alt : true\r
+},\r
+\r
X_Node_Attr_renameForTag = {};\r
// http://nanto.asablo.jp/blog/2005/10/29/123294\r
// checked -> defaultChecked\r
// 動的に生成した input 要素を文書ツリーに挿入する前に設定した checked 属性は反映されず、defaultChecked だと反映される\r
// ロードイベントを拾うために、要素生成時にネットワーク関連の属性を設定しない。\r
// -> src (img, iframe, ), link の href, <param name="movie" src=>\r
-function X_Node_Attr_objToAttrText( that, skipNetwork, escape ){ // TODO value の escape " -> "\r
+ // \r
+function X_Node_Attr_objToAttrText( that, skipNetworkForElmCreation ){\r
var obj = that._attrs,\r
noValue = X_Node_Attr_noValue,\r
attrs = [ '' ], // 先頭にスペース\r
plain = X_EMPTY_OBJECT,\r
- n = 0, k, hasNetwork;\r
-\r
- that._flags &= ~X_Node_State.OLD_ATTRTEXT;\r
+ n = 0, k, check;\r
\r
+ if( skipNetworkForElmCreation ){\r
+ delete that._newAttrs;\r
+ // このあとで _newAttr にネットワーク系の属性を控える, attrText には加えない\r
+ } else {\r
+ that._flags &= ~X_Node_State.OLD_ATTRTEXT;\r
+ // 完全な attrText\r
+ };\r
+ \r
if( !obj ){ // Opera7\r
delete that._attrText;\r
return '';\r
};\r
+ \r
for( k in obj ){\r
if( plain[ k ] ) continue;\r
\r
- if( skipNetwork ){\r
- switch( k ){\r
- case 'value' :\r
- if( that._tag === 'LINK' && that._attr && that._attr.name === 'movie' ){\r
- hasNetwork = true;\r
- continue;\r
- };\r
- break;\r
+ if( skipNetworkForElmCreation ){\r
+ check = false;\r
+ switch( that._tag + k ){\r
+ case 'PARAMvalue' :\r
+ check = obj[ 'name' ] !== 'movie';\r
+ case 'INPUTsrc' :\r
+ check = check || ( obj[ 'type' ] !== 'image' );\r
+ case 'LINKhref' :\r
+ check = check || ( obj[ 'rel' ] !== 'stylesheet' );\r
\r
- case 'src' :\r
- hasNetwork = true;\r
+ if( !check ) break;\r
+\r
+ case 'IMGsrc' :\r
+ case 'IFRAMEsrc' :\r
+ case 'FRAMEsrc' :\r
+ case 'SCRIPTsrc' :\r
+ case 'EMBEDsrc' :\r
+ case 'OBJECTdata' :\r
+ case 'BGSOUNDsrc' :\r
+ case 'APPLETcode' :\r
+ //case 'AUDIOsrc' :\r
+ //case 'VIDEOsrc' :\r
+ if( !that._newAttrs ) that._newAttrs = {};\r
+ that._newAttrs[ k ] = obj[ k ];\r
continue;\r
- \r
- case 'href' :\r
- if( that._tag === 'LINK' ){\r
- hasNetwork = true;\r
- continue;\r
- };\r
};\r
};\r
\r
attrs[ ++n ] = noValue[ k ] ? k : [\r
k, '="',\r
- k === 'value' ? X_String_toChrReferance( obj[ k ] ) : obj[ k ],\r
+ X_Node_Attr_toChrReferance[ k ] ? X_String_toChrReferance( obj[ k ] ) : obj[ k ],\r
'"' ].join( '' );\r
};\r
\r
- //if( hasNetwork ) that._flags |= X_Node_State.IE_NETWORK_ATTR\r
- \r
if( 0 < n ){\r
return that._attrText = attrs.join( ' ' );\r
};\r