数据URI的特征
数据-URI和MIME类型的text/html必须是其中一种格式。
data :文本/html、
data :文本/html; charset=UTF-8,
不需要Base-64代码。 必须添加包含非ASCII字符的代码,如、charset=UTF-8。
下一个字符必须转义。
#-Firefox和Opera将此字符解释为dddjb标记。 (如所示,location.hash )。
%-用于转义字符。 转义此字符以确保没有副作用。
另外,如果要在锚点标记中嵌入代码,则必须转义以下字符:
' and/or ' -用引号标记属性的值。
使用&符号标记HTML实体。
HTML属性中也没有转义。 但是,如果要将链接嵌入到HTML中,则必须进行转义。 <; and>; () )。
JavaScript实现
如果不介意data-URI的大小,最简单的方法是使用编码组件。
var html=document.getelementbyid (' html ' ).innerHTML;
var data uri=' data :文本/html,' encodeuricomponent(html );
如果大小很重要,建议删除所有连续的空格,除非它们包含在HTML中
element/style,否则可以安全地进行)。 然后,只替换有效字符。 var html=document.getelementbyid (' html ' ).innerHTML;
html=html.replace(/) s{2,}/g,'') /
. replace(/%/g,“%”) /
. replace(/g,' &;' ) ) /
. replace(/#/g,' # ' ) /
. replace(/)/g,) (") ) /
. replace(/)/g,) ) ); //
var data uri=' data :文本/html; charset=UTF-8,' html;