栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用JavaScript将HTML转换为data:text / html链接

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用JavaScript将HTML转换为data:text / html链接

数据URI的特征

甲数据-URI与MIME类型

text/html
必须是在其中一种格式:

data:text/html,<HTML HERE>data:text/html;charset=UTF-8,<HTML HERE>

不需要base-64编码。如果您的代码包含非ASCII字符,例如

éé
charset=UTF-8
则必须添加。

必须转义以下字符:

  • #
    -Firefox和Opera将这个字符解释为哈希标记(如所示
    location.hash
    )。
  • %
    -此字符用于转义字符。转义此字符以确保没有副作用发生。

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

  • " and/or '
    -用引号标记属性的值。
  • &
    -与符号用于标记HTML实体。
  • <
    并且
    >
    没有 进行转义 一个HTML属性中 。但是,如果您要将链接嵌入HTML,则也应将其转义(
    %3C and %3E

Javascript实现

如果您不介意data-URI的大小,最简单的方法是使用

enpreURIComponent

var html = document.getElementById("html").innerHTML;var dataURI = 'data:text/html,' + enpreURIComponent(html);

如果大小很重要,则最好去除所有连续的空格(除非HTML包含

<pre>
element/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;


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/470604.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号