【问题标题】:How to encode HTML file to base64?如何将 HTML 文件编码为 base64?
【发布时间】:2017-08-25 05:07:21
【问题描述】:

我是 HTML 和 JavaScript 的初学者。并尝试将 HTML 文件编码为 Base64 代码,然后将该编码字符串从另一个 HTML 文件中放入 <iframe src=" ENCODED STRING HERE"

我在这里要做的是将编码的字符串放入弹出窗口iframe 中,如下所示,使其可见,

  var i_frame_98c3be4abbe943db99555415352b65f5 = $('<iframe src="ENCODED STRING FROM HTML FILE" width="500" style="border:none !important;" height="300"></iframe>')[0];

但是,我不知道该怎么做。

我知道有编码/解码网站base64encode.org,但我必须手动完成。我想让它直接编码并在我打开文件时将代码放在iframe src中。

html中是否有任何想法或功能可以直接编码?

附言如果您想查看,我可以编辑以上传 html 代码。

【问题讨论】:

  • 所以你实际上需要一个数据uri
  • 好的浏览器都有btoa方法——你需要在浏览器中做这个编码吗? var datauri = 'data:text/html;base64,' + btoa(htmlsrc);

标签: javascript html base64 encode


【解决方案1】:

https://www.w3schools.com/jsref/jsref_encodeURI.asp 对编码 URI 有很好的参考。

我也会在这里查看解决方案来设置 iframe 的 src 值:dynamically set iframe src

演示 jsfiddle:https://jsfiddle.net/np7hp5jo/1/

function appendHtml(el, str) {
  var div = document.createElement('div');
  div.innerHTML = str;
  while (div.children.length > 0) {
    el.appendChild(div.children[0]);
  }
}

var encodedUrl = encodeURI('https://www.lifehacker.com.au/?r=US');

var html = '<iframe id="myIframe" src="'+encodedUrl+'" onLoad="iframeDidLoad();"></iframe>';
appendHtml(document.body, html); // "body" has two more children - h1 and span.

快乐学习。

【讨论】:

  • 使用 readAsDataURL 方法读取指定 Blob 或 File 内容的最佳方式。当读操作完成后,readyState 变为 DONE,并触发 loadend。那时,结果属性包含作为 URL 的数据,将文件的数据表示为 base64 编码的字符串。基于:developer.mozilla.org/en-US/docs/Web/API/FileReader/…
  • @SureshSapkota 嗨,我怎样才能从 javascript 读取本地 html 文件呢?而不是使用input? 加载
  • 在读取本地文件时使用 XMLHttpRequest 更容易获取整个文件。
  • encodeURI 将 URI 中不允许的字符替换为其百分比编码的对应字符。这与使用 Base64 编码生成 data: 方案 URI 完全无关。
  • @SureshSapkota — 我不确定您所写的是否有资格作为答案(在这种情况下应该是答案,而不是评论)还是真正的评论(在这种情况下它应该是对 question 的评论,因为它与此答案无关)。
猜你喜欢
  • 2019-07-02
  • 2014-06-21
  • 1970-01-01
  • 2010-09-05
  • 1970-01-01
  • 1970-01-01
  • 2016-03-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多