将HTML转换为数据:使用JavaScript的texthtml链接

将HTML转换为数据:使用JavaScript的texthtml链接,第1张

概述这是我的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? 我基本上想做同样 这是我的HTML:
<a>VIEw it in your browser</a><div ID="HTML">    <h1>DoggIEs</h1>    <p >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中所示)。
>% – 此字符用于转义字符。逃避这个角色,以确保没有副作用发生。

此外,如果要将代码嵌入到锚标签中,还应转义以下字符:

>“和/或’ – 报价标记属性的值。
>& – &符号用于标记HTML实体。
><和>不必在HTML属性内转义。但是,如果您要将链接嵌入到HTML中,那么这些链接也应该被转义(<和>)
JavaScript实现

如果您不介意数据URI的大小,最简单的方法是使用encodeURIComponent

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;
总结

以上是内存溢出为你收集整理的将HTML转换为数据:使用JavaScript的text/html链接全部内容,希望文章能够帮你解决将HTML转换为数据:使用JavaScript的text/html链接所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1112152.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存