js 自制解碼.rpgsave存檔的網頁
1. 桌面右鍵,新建文字文件,檔名任意,字尾改為.html
2. 文件右鍵,編輯,複製程式碼到文件裡
3. 雙擊開啟html頁面
解碼rpgsave.html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>解碼rpgsave</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/element-ui@2.14.1/lib/theme-chalk/index.css">
<script src="https://cdn.jsdelivr.net/npm/element-ui@2.14.1/lib/index.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/lz-string@1.4.4/libs/lz-string.min.js" async></script>
<script src="https://cdn.jsdelivr.net/npm/file-saver@2.0.5/dist/FileSaver.min.js" async></script>
</head>
<body>
<div id="app">
<el-row :gutter="10">
<el-col :xs="24" :sm="24" :md="10" style="margin-top: 50px;">
<div style="display: flex; flex-direction: column; align-items: center;">
<!-- (1) 選取檔案 -->
<div>
<el-upload
class="upload-demo"
drag
:auto-upload="1==2"
:on-change="upload"
:on-preview="clickFile"
action="#"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">將檔案拖到此處,或<em>點選上傳</em></div>
</el-upload>
</div>
<!-- (2) 加密內容 -->
<div style="margin-top: 50px;">
<el-input v-model="加密內容" placeholder="未讀取檔案">
<template slot="prepend">原文:</template>
<el-button slot="append" v-on:click="ctrl_c(加密內容)" icon="el-icon-document-copy"></el-button>
</el-input>
</div>
<!-- (3) 加密按鈕 -->
<div style="margin-top: 15px;">
<el-button v-on:click="encode_and_save" icon="el-icon-upload2"></el-button>
</div>
<!-- (4) 解密內容 -->
<div style="margin-top: 15px;">
<el-input v-model="解密內容" placeholder="請輸入內容">
<template slot="prepend">解碼:</template>
<el-button slot="append" v-on:click="ctrl_c(解密內容)" icon="el-icon-document-copy"></el-button>
</el-input>
</div>
</div>
</el-col>
<el-col :xs="24" :sm="24" :md="13" style="margin-top: 40px;">
<div style="display: flex; flex-direction: column; align-items: center;">
<!-- (5) json內容 -->
<div style="margin-top: 15px; width: 90%;">
<el-input type="textarea" v-model="json內容" placeholder="請輸入內容" :rows="18">
</el-input>
</div>
<!-- (6) 轉換按鈕 -->
<div style="margin-top: 15px;">
<el-button v-on:click="change_and_encode_and_save" type="primary" icon="el-icon-check"></el-button>
<el-button v-on:click="ctrl_c(json內容)" icon="el-icon-document-copy"></el-button>
</div>
</div>
</el-col>
</el-row>
</div>
<script>
var app = new Vue({
el: '#app',
data: {
加密內容: null,
解密內容: null,
json內容: null,
檔案路徑: null
},
watch: {
加密內容(新值, 舊值) {
this.解密內容 = this.讀取解密內容(this.加密內容)
},
解密內容(新值, 舊值) {
this.json內容 = this.讀取json內容(this.解密內容)
}
},
methods: {
// (1)
upload: function (file, fileList) {
this.檔案路徑 = file.name
file.檔案路徑 = this.檔案路徑
this.讀取加密內容(file.raw)
},
clickFile: function (file) {
this.讀取加密內容(file.raw)
this.檔案路徑 = file.檔案路徑
},
// (2)
讀取加密內容: function (file) {
var _this = this
var reader = new FileReader()
reader.readAsText(file)
reader.onload = function(){
_this.加密內容 = this.result
}
},
ctrl_c: function (text) {
this.copyText(text)
},
// (3)
encode_and_save: function () {
this.加密內容 = this.encode(this.解密內容)
// this.save(this.加密內容)
},
// (4)
讀取解密內容: function (加密內容) {
return LZString.decompressFromBase64(加密內容)
},
// (5)
讀取json內容: function (解密內容) {
return JSON.stringify(JSON.parse(解密內容),null,2)
},
// (6)
change_and_encode_and_save: function () {
let _ = this.change(this.json內容)
this.加密內容 = this.encode(_)
this.save(this.加密內容, this.檔案路徑)
},
// ------------ 工具方法 ------------
change: function (text) {
return JSON.stringify(JSON.parse(text))
},
encode: function (text) {
return LZString.compressToBase64(text)
},
save: function (text, 檔名 = "a1.txt") {
let pos = 檔名.lastIndexOf("/")
檔名 = 檔名.substring(pos+1)
console.log(檔名)
var file = new File([text], 檔名, { type: "text/plain;charset=utf-8" });
saveAs(file);
},
// 複製的方法
copyText: function(text, callback){ // text: 要複製的內容, callback: 回撥
var tag = document.createElement('input');
tag.setAttribute('id', 'cp_hgz_input');
tag.value = text;
document.getElementsByTagName('body')[0].appendChild(tag);
document.getElementById('cp_hgz_input').select();
document.execCommand('copy');
document.getElementById('cp_hgz_input').remove();
if(callback) {callback(text)}
}
}
})
</script>
</body>
</html>
相關文章
- 網頁密碼儲存網頁密碼
- 用js修改網頁中的js檔案JS網頁
- asp.net自制分頁頁碼條控制元件ASP.NET控制元件
- frank程式碼網為網頁前端人員提供建站常用的網頁js程式碼網頁前端JS
- JS 網頁列印解決方案JS網頁
- js實現的將網頁儲存為圖片簡單解釋介紹JS網頁
- JSP網頁中下載xls檔案亂碼怎麼辦?JS網頁
- 網頁引入使用js檔案的幾種方式網頁JS
- js點選返回網頁頂部程式碼例項詳解JS網頁
- 想獲取JS載入網頁的源網頁的原始碼,不想獲取JS載入後的資料JS網頁原始碼
- 解決“阻塞效應”-解決指令碼檔案下載阻塞網頁渲染的問題指令碼網頁
- js程式碼從頁面移植到檔案中失效或js程式碼修改後不起作用的解決辦法JS
- 網頁地址編碼解碼(網頁地址明文密文轉換)url編碼解碼 Python3網頁Python
- 使用canvas儲存網頁為pdf檔案支援跨域Canvas網頁跨域
- 網頁長按儲存及識別二維碼網頁
- js如何獲取網頁尾本程式碼的內容JS網頁
- 為在網頁中插入「空格」編寫的JS指令碼網頁JS指令碼
- 儲存json檔案JSON
- js操作網頁中的元素JS網頁
- Delphi儲存網頁中的圖片網頁
- Java抓任意網頁標題亂碼jsoup解決方案一例Java網頁JS
- 網路遊戲直播原始碼自制開源版APP遊戲原始碼APP
- 使用瀏覽器擴充套件篡改網頁中的 JS 檔案瀏覽器套件網頁JS
- 分享js列印 網頁JS網頁
- JS 網頁列印 頁邊距 頁首頁尾JS網頁
- 自制支援檔案拖放的VCL元件 (轉)元件
- 將網頁儲存為圖片形式程式碼例項網頁
- 購物商城首頁的js檔案,JS
- 處理JS分頁載入的網頁_recvJS網頁
- three.js 自制骨骼動畫(二)JS動畫
- three.js 自制骨骼動畫(一)JS動畫
- js實現的網頁標題閃動程式碼例項JS網頁
- (詳細)python爬取網頁資訊並儲存為CSV檔案(後面完整程式碼!!!)Python網頁
- 網頁效能優化之非同步載入js檔案網頁優化非同步JS
- JSP網頁中如何執行本地檔案*.bat/*.regJS網頁BAT
- 開啟儲存的網頁顯示英文和數字的解決方法網頁
- 資料儲存(歸檔解檔,沙河儲存)
- js獲取網頁title標題程式碼例項JS網頁