webos/web/apps/ace/js/md-init.js
2024-02-28 17:21:32 +08:00

73 lines
2.9 KiB
JavaScript

(function (){
Vue.app({
data(){
return {
fileData:{}
}
},
methods:{
changeSeniorMd:function (){
var url = new URL(window.location.href);
var data = {};
url.searchParams.forEach(function (val,key){
data[key]= val;
});
var oldUrlSz = (window.location.origin+window.location.pathname).split("/");
oldUrlSz.length -= 1;
var url2 = new URL(oldUrlSz.join("/")+"/index.html");
for(var key in data){
url2.searchParams.set(key,data[key]);
}
window.location.href = url2.href;
},
toSaveData:function (){
var that = this;
that.$refs["iframe"].contentWindow.postMessage({"type":"getContent"},"*");
},
saveData:async function (content){
var that = this;
var param = {
file:new Blob([content]),
name:that.fileData.fname,
parentPath:that.fileData.parentPath
}
var flag = await parent.webos.fileSystem.uploadSmallFile(param);
if(flag){
utils.$.successMsg(parent.webos.context.get("lastSuccessReqMsg"));
}else{
utils.$.errorMsg(parent.webos.context.get("lastErrorReqMsg"));
}
},
init:async function (){
var that = this;
window.addEventListener("message",function (e){
var param = e.data;
if(param.type == "init"){
fetch(that.fileData.url)
.then(function (res){return res.text()})
.then(function (res){
that.$refs["iframe"].contentWindow.postMessage({"type":"setContent","content":res},"*");
});
that.$refs["iframe"].contentWindow.postMessage({"type":"onlyRead","edit":that.fileData.expAction == "edit"},"*");
}else if(param.type == "getContent"){
var content = param.content;
that.saveData(content);
}
});
var url = new URL(window.location.href);
var data = {};
url.searchParams.forEach(function (val,key){
data[key]= val;
});
that.fileData = data;
var sz = data.path.split("/");
sz.length -= 1;
that.fileData.parentPath = sz.join("/");
that.$refs["iframe"].src = "https://support.tenfell.cn/markdown/";
},
},
mounted:function(){
this.init();
}
});
})()