【发布时间】:2014-12-24 08:37:00
【问题描述】:
也许我问的太多了,但问比假设它不存在要好得多。
为了将网页转换器创建为单个文件(包括 html 的所有外部资源),我计划使用数据 URI 方案。但是这种转换的问题是很多页面都包含 Javascript 代码来提供资源的 URI。一世。 e.页面用JS设置图片的src是完全正常的。
在最坏的情况下,URI 是组合的,在这种情况下,绝对不可能用 Data URI Scheme 替换 URI,例如。 G。 img.src = 'domain.com/' + some_variable + '.png';.
我能想到的克服这种情况和所有其他情况的唯一方法是在 URI 更改之后和下载之前引入一个中间代码块。如果没有这样的机会,我可以处理请求的 URI 并将其替换为适当的数据 URI 方案。它还受益于全局数据 URI 方案存储,从而导致更小的 html 文件大小。
有谁知道这样的机会是否存在?或者如果有人可以创建它?
[编辑]
我希望我的单文件网页如下所示:
<script>
var uri_dictionary = {
'http://www.domain.com/1.png': 'data:image/png;base64,iVBORw0KGgoAAAAN...',
'http://www.domain.com/2.png': 'data:image/png;base64,iVBORw0KGgoAAAAN...'
};
function translateURI(url) {
if (uri_dictionary[url]) {
return uri_dictionary[url];
}
else {
return url;
}
}
</script>
以上是我计划注入到我将要生成的单文件网页中的代码的简化版本。只是translateURI函数需要在发出之前拦截所有的外发请求。并在可行的情况下替换他们请求的 URI。
【问题讨论】:
-
您想在自己的网站还是其他网站上这样做?
-
我自己,为我编码的网站。但我不明白这有什么关系?
-
你能用 PhantomJS 吗?它可以运行整个 javascript,您以后可以使用完整的 url 来下载图像。如果你有兴趣,我可以提供一个例子。
-
其实我确实打算使用 PhantomJs。但我认为这不会解决任何问题。演示该问题的最简单情况是图像在被单击后在两个源之间切换。并且新源的 URI 将由 JS 代码组成。您打算如何从 PhantomJs 解决如此复杂的问题中受益?
标签: javascript html events