[英]Compressing Base64 string through LZString gives SyntaxErrors
https://pieroxy.net/blog/pages/lz-string/guide.html
我有一些 Base64 數據 url 字符串需要壓縮成較短的字符串。 我已經下載了 LZString 庫並嘗試使用Base64String.compress(base64)
和Base64String.decompress(compressedBase64)
如上面的官方指南所示。
雖然數據 url 用於在離線頁面中顯示圖像,但頁面預計為壓縮大小,因此必須在離線頁面中解壓縮每個字符串。 這是一個簡化的代碼示例:
var compressed = Base64String.compress(dataUrl);
var script = document.createElement("script");
script.innerHTML = "var dataUrl = Base64String.decompress(" + compressed + ");";
offlineHtml.querySelector("body").appendChild(script);
但是,當我下載頁面並打開它時,它顯示了各種 forms 的 SyntaxErrors 發生,包括missing ) after argument list
Invalid or unexpected token
Unexpected identifiers
。 似乎字符串的壓縮方式會產生有問題的語法。 是否有任何解決方案或任何其他適合 base64 字符串壓縮的庫?
與其嘗試連接以創建包含有效 Javascript 語法的字符串,不如將壓縮字符串保存在static Javascript可以檢索和解析的其他位置。 您可以使用<script type="application/json">
,或不可見的文本區域,或數據屬性:
const compressed = Base64String.compress(dataUrl);
const script = document.createElement("script");
script.dataset.compressed = compressed;
script.textContent = `
var dataUrl = Base64String.decompress(document.currentScript.dataset.compressed);
`;
offlineHtml.querySelector("body").appendChild(script);
(或者,最好不要像這樣在內聯編寫 Javascript,而是將src
附加到包含相同內容的腳本標簽)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.