Widget:沙盒4/form
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script> <link href="https://cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet"> <link href="//cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet"> <link href="//cdn.quilljs.com/1.3.6/quill.bubble.css" rel="stylesheet"> <script src="https://cdn.quilljs.com/1.3.6/quill.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.7.1/katex.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script> <script> (window.RLQ = window.RLQ || []).push(['jquery', () => {
var u = (document.cookie.match(/DedeUserID=([^;]+)/) || [])[1] || ""; var dz = mw.config.values.wgGameName; var vcname = dz.slice(0, 1).toUpperCase() var sj = parseInt(Math.random(100) * 10).toString() + parseInt(Math.random(100) * 10).toString() + parseInt(Math.random(100) * 10).toString() var VC = `${vcname}VC${parseInt(Math.round(new Date() / 1000) + sj).toString(32).toUpperCase()}`
document.getElementById("inputDOM").innerHTML = `<textarea maxlength="" placeholder="请输入标题(建议30字以内)" style="overflow-y: hidden;height: auto;border: 0px;font-size: 28px;padding: 12px 50px 12px 0px;font-weight: 700;line-height: 40px;width: 100%;" id="title"></textarea>
<tbody></tbody>基础信息 | |||
---|---|---|---|
投稿分区: | <select id="lx" tabindex="6" name="类别" class="createboxInput pfShowIfSelected"><option value="">--请选择稿件分区--</option><option value="攻略视频">攻略视频</option><option value="专栏攻略">专栏攻略</option><option value="同人图">同人视频</option><option value="同人图">同人图</option><option value="表情包">表情包</option></select> | ||
类型: | <select id="yuan" tabindex="6" name="同人图片[是否原创]" class="createboxInput pfShowIfSelected" onchange="yc()"><option value="">--请选择类型--</option><option value="自制">自制</option><option value="转载">转载</option></select> | ||
时间: | <input id="time" type="date"> | ||
作者: | <input id="up" tabindex="4" class="createboxInput mandatoryField" size="35" name="同人图片[作者]"> | ||
B站昵称: | <input id="bname" tabindex="4" class="createboxInput mandatoryField" size="35" name="同人图片[作者]"> | ||
B站UID: | <input id="BUID" tabindex="5" class="createboxInput mandatoryField" size="35" name="同人图片[B站UID]"> | ||
相关角色: | <input id="xgjs" tabindex="4" class="createboxInput mandatoryField" size="35" name="同人图片[作者]"> | ||
合集 | <select id="sfhj" tabindex="6" name="合集[是否原创]" class="createboxInput pfShowIfSelected" onchange="heji()"><option value=""></option><option value="是">是</option><option value="否">否</option></select><input id="hj" tabindex="5" class="createboxInput mandatoryField" size="35" name="同人图片[B站UID]" style="display: none;"> | ||
定时发布: | <select id="sfdingshi" tabindex="6" name="定时[是否]" class="createboxInput pfShowIfSelected" onchange="ds()"><option value="">--是否定时--</option><option value="是">是</option><option value="否">否</option></select><input type="datetime-local" id="ding-datetime" style="display: none;"> |
` document.getElementById("btnDOM").innerHTML = `
<button class='submit-btn-group-add' id='btn' style='display: inline-block;height: 40px;font-size: 14px;border-radius: 42px;text-align: center;vertical-align: middle; width: 120px; border: #fff0;cursor: pointer;line-height: 40px;color: #fff;background: #37c8f7;'>立即投稿</button>
`
//设置元素可见度及样式 document.getElementById('zizhi').style.display = "none" document.getElementsByClassName("zhuanzai")[0].style.display = "none" document.getElementById('ding-datetime').style.display = "none" document.getElementById('hj').style.display = "none" document.getElementById('btn').disabled = true document.getElementById('btn').style.background = "#e5e9ef" document.getElementById('btn').style.color = "#99a2aa" //设置元素value值 document.getElementById("BUID").value = u; document.getElementById("bname").value = UserStatus.userInfo.uname; //主函数 document.getElementById("btn").onclick = function() { getApi(`https://wiki.biligame.com/${dz}/api.php?action=query&meta=tokens&format=json`, function(json) { let token = JSON.parse(json).query.tokens.csrftoken let url = `https://wiki.biligame.com/${dz}/api.php` let fd = new FormData() fd.append("action", "edit") fd.append("title", `${VC}`) fd.append("text", `模板:文章模板}`) fd.append("token", token) fd.append("format", "json") postFdApi(url, fd) alert(`恭喜,投稿成功!您所投稿的稿件${vcname}VC号为${VC}`); document.getElementById("ca-purge").getElementsByTagName("a")[0].click() }) } window.onbeforeunload = function() { return "您的文章尚未保存!"; }
}]);
function yc() {
(window.RLQ = window.RLQ || []).push(['jquery', () => { $(document).ready(function() { var yuan = document.getElementById("yuan").value if (yuan == '自制') { document.getElementById('zizhi').style.display = "revert" document.getElementsByClassName("zhuanzai")[0].style.display = "none" } else { if (yuan == '转载') { document.getElementById('zizhi').style.display = "none" document.getElementsByClassName("zhuanzai")[0].style.display = "revert" } else { document.getElementById('zizhi').style.display = "none" document.getElementsByClassName("zhuanzai")[0].style.display = "none" } } }) }]);
}
function ds() {
(window.RLQ = window.RLQ || []).push(['jquery', () => { $(document).ready(function() { var sfdingshi = document.getElementById("sfdingshi").value if (sfdingshi == '是') { document.getElementById('ding-datetime').style.display = "revert" } else { if (sfdingshi == '否') { document.getElementById('ding-datetime').style.display = "none" } else { document.getElementById('ding-datetime').style.display = "none" } } }) }]);
}
function heji() {
(window.RLQ = window.RLQ || []).push(['jquery', () => { $(document).ready(function() { var sfdingshi = document.getElementById("sfhj").value if (sfdingshi == '是') { document.getElementById('hj').style.display = "revert" } else { if (sfdingshi == '否') { document.getElementById('hj').style.display = "none" } else { document.getElementById('hj').style.display = "none" } } }) }]);
}
function giz() {
(window.RLQ = window.RLQ || []).push(['jquery', () => { $(document).ready(function() { var sfguize = document.getElementById('guize').checked if (sfguize == true) { document.getElementById('btn').disabled = false document.getElementById('btn').style.background = "#37c8f7" document.getElementById('btn').style.color = "#ffffff" } else { document.getElementById('btn').disabled = true document.getElementById('btn').style.background = "#e5e9ef" document.getElementById('btn').style.color = "#99a2aa" } }) }]);
}
</script> <script>
var toolbarOptions = [ [{ 'size': ['small', false, 'large', 'huge'] }], // custom dropdown [{ 'header': [1, 2, 3, 4, 5, 6, false] }],
[{ 'color': [] }, { 'background': [] }], // dropdown with defaults from theme [{ 'font': [] }], [{ 'align': [] }], ['bold', 'italic', 'underline', 'strike','link'], // toggled buttons ['blockquote', 'code-block'],
[{ 'header': 1 }, { 'header': 2 }], // custom button values [{ 'list': 'ordered'}, { 'list': 'bullet' }], [{ 'script': 'sub'}, { 'script': 'super' }], // superscript/subscript [{ 'indent': '-1'}, { 'indent': '+1' }], // outdent/indent [{ 'direction': 'rtl' }], // text direction
['clean'] // remove formatting button
]; var quill = new Quill('#editor', {
modules: { toolbar: toolbarOptions }, theme: 'snow'
}); function quillGetHTML(inputDelta) {
var tempCont = document.createElement("div"); (new Quill(tempCont)).setContents(inputDelta); return tempCont.getElementsByClassName("ql-editor")[0].innerHTML;
} </script> <style> .editor {
line-height: normal !important; height: 750px;
} .ql-snow .ql-tooltip[data-mode=link]::before {
content: "请输入链接地址:";
} .ql-snow .ql-tooltip.ql-editing a.ql-action::after {
border-right: 0px; content: '保存'; padding-right: 0px;
}
.ql-snow .ql-tooltip[data-mode=video]::before {
content: "请输入视频地址:";
} .ql-snow .ql-picker.ql-header .ql-picker-label::before, .ql-snow .ql-picker.ql-header .ql-picker-item::before {
content: '文本';
} .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
content: '标题1';
} .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
content: '标题2';
} .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
content: '标题3';
} .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
content: '标题4';
} .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
content: '标题5';
} .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
content: '标题6';
}
.ql-snow .ql-picker.ql-font .ql-picker-label::before, .ql-snow .ql-picker.ql-font .ql-picker-item::before {
content: '标准字体';
} .ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before, .ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
content: '衬线字体';
} .ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before, .ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
content: '等宽字体';
} .ql-toolbar.ql-snow + .ql-container.ql-snow {
height: 230;
} .ql-editor {
background: #ffffffb8; } .ql-toolbar.ql-snow { background: #ffffff;
} .ql-snow .ql-editor h2{ margin-top: 0;
margin-bottom: .5em; color: rgba(0,0,0,.85); font-weight: 500; display: block; text-align: left; font-size: 1.5em; background: #fff0; border-radius: 0px; margin-block-start: 0.83em; margin-block-end: 0.83em; margin-inline-start: 0px; margin-inline-end: 0px;
} </style> <script> function getApi(url,callback=false,callbackE=false){ let ajax=new XMLHttpRequest() if(!callback){ ajax.open("GET",url,false) ajax.send() let json=JSON.parse(ajax.responseText) return json } ajax.open("GET",url) ajax.send() ajax.onreadystatechange=function(){ if(ajax.readyState==4){ if(ajax.status==200){ callback(ajax.responseText) } else if(ajax.status==404&&callbackE){ callbackE(true) } } } } function postFdApi(url,fd,isParse=true){ let ajax=new XMLHttpRequest() ajax.open("POST",url,false) ajax.send(fd) if(!isParse){ return ajax.responseText } let json=JSON.parse(ajax.responseText) return json } </script>