рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд░реЗрдВ?
RFC 2397 рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХ рдЪрд┐рддреНрд░ (рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдбреЗрдЯрд╛ рдХреА рддрд░рд╣) рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
data:[<mediatype>][;base64],<data>
рд╣рдо рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ:
dataurl := "data:" [ mediatype ] [ ";base64" ] "," data
mediatype := [ type "/" subtype ] *( ";" parameter )
data := *urlchar
parameter := attribute "=" value
рдпрд╣рд╛рдБ рдХреНрдпрд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ? рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдореЗрдбрд┐рдпрд╛рдЯрд╛рдЗрдк рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд╛рд░рд╕реЗрдЯ) рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рддрджрдиреБрд╕рд╛рд░, рдХреЛрдИ рднреА рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдпрд╣ рд╕рдм рдХреНрдпреЛрдВ рд╣реВрдБ?
рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдмреЗрд╕ 64-рдПрдирдХреЛрдбреЗрдб рдЪрд┐рддреНрд░ рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдЙрдирдХреЗ рдпреВрдЖрд░рдПрд▓ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рд▓реЛрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк url рдХреЛ рд╕реАрдзреЗ mediatype рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ?
рдЖрдк рдЗрд╕реЗ рд▓рдЧрднрдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
data:image/png;src=habr.png;_base64_...
рдпрд╣ рд╕рдм, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рд▓реЗрдХрд┐рди IE рдХреИрд╕реЗ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рд╣рдорд╛рд░реА рддрд╕реНрд╡реАрд░ рд╣реИ?
рдореИрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВред
рдпрд╣ рд╕реАрдПрд╕рдПрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗрд╡рд▓ рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реИ рдФрд░ рдкреАрдПрдирдЬреАрдлрд┐рдХреНрд╕ (рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╕реЗ рдПрдХ) рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рдиреА рдЬрд╛рддреА рд╣реИред
рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ ( рд╕реАрдПрд╕рдПрд╕ рдХреЛрдб ):
#A {
background-image: url(data:image/png;src=habr.png;_base64_...);
behavior: url(ieb64.htc);
}
рдФрд░ рдпрд╣ ieb64.htc рдХреЛрдб рд╣реИ:
< public:attach event ="ondocumentready" onevent ="ondocumentready()" />
< script type ="text/javascript" >
function ondocumentready() {
this .style.backgroundImage =
this .currentStyle
.backgroundImage
.replace(
/^url\s*\(\s*\ "?\s*data:[^;]+;src=([^;]+);.*$/,
function(all, url) {
return " url(\ "" + url + "\")" ;
}
);
}
</ script >
рдпрд╣рд╛рдВ рдбреЗрдореЛ рджреЗрдЦреЗрдВред
рдФрд░ рдпрд╣рд╛рдБ рдЖрдк htc рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!