将HTML转换为数据:使用JavaScript的text/html链接
这是我的HTML:
<a>View it in your browser</a> <div id="html"> <h1>Doggies</h1> <p style="color:blue;">Kitties</p> </div> 如何使用JavaScript来使我的链接的href属性指向一个base64编码的网页,其源代码是div#html的innerHTML? 我基本上想做同样的转换完成here(选中base64复选框),除了JavaScript。 解决方法
数据URI的特征
具有MIME类型text / html的data-URI必须采用以下格式之一: data:text/html,<HTML HERE> data:text/html;charset=UTF-8,<HTML HERE> Base-64编码不是必需的。如果您的代码包含非ASCII字符,例如éé,charset = UTF-8必须添加。 必须转义以下字符: ## – Firefox和Opera将此字符解释为散列的标记(如location.hash中所示)。 此外,如果要将代码嵌入到锚标签中,还应转义以下字符: >“和/或’ – 报价标记属性的值。 如果您不介意数据URI的大小,最简单的方法是使用 var html = document.getElementById("html").innerHTML; var dataURI = 'data:text/html,' + encodeURIComponent(html); 如果大小很重要,您最好将所有连续的空格区分开(这可以安全地完成,除非HTML包含< pre>元素/ style)。然后,只能替换有意义的字符: var html = document.getElementById("html").innerHTML; html = html.replace(/s{2,}/g,'') // <-- Replace all consecutive spaces,2+ .replace(/%/g,'%25') // <-- Escape % .replace(/&/g,'%26') // <-- Escape & .replace(/#/g,'%23') // <-- Escape # .replace(/"/g,'%22') // <-- Escape " .replace(/'/g,'%27'); // <-- Escape ' (to be 100% safe) var dataURI = 'data:text/html;charset=UTF-8,' + html; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |