愉快的和朋友在论坛斗图吧!
当前为
// ==UserScript==
// @name MCBBS Emoticon Add
// @namespace http://fang.blog.miri.site
// @version Gamma 3.0
// @description 愉快的和朋友在论坛斗图吧!
// @author Mr_Fang
// @match https://*.mcbbs.net/*
// @grant none
// ==/UserScript==
(function() {
var storage = window.localStorage;
if(jq('.user_info_menu_btn').length>0) {
jq('.user_info_menu_btn').append('<li><a id="mbea_setting">Emoticon Add 设置</a></li>');
document.getElementById('mbea_setting').addEventListener('click',function(){
showDialog('<style>.alert_right {background-image: none;padding-right: 0px;padding-left: 0px;}</style><div class=""><p><b>默认窗口位置</b> - 请输入1或0 <span style="color: gray; margin-left: 5px;" title="1 - 打开页面窗口默认最大化\n0 - 打开页面窗口默认最小化\n输入其它值则默认为0">[?]</span></p><input id="input_windowmode" style="width: 340px;" value="' + storage.getItem('mbea_windowmode') + '"><br><br><p><b>按规定格式添加即可</b> - 点击确定保存 <span style="color: gray; margin-left: 5px;" title="语法与Markdown相同:\n">[?]</span></p><textarea id="input_setting" style="width: 340px;" rows="20">' + storage.getItem('mbea_setting') + '</textarea>保存后刷新即可生效</div>',
'right',
'<div style="line-height:30px;"><img src="https://s2.ax1x.com/2020/02/25/3twNzq.png" width="20px"> 设置 - MCBBS Emoticon Add</div>',
function() {
storage["mbea_setting"] = document.getElementById("input_setting").value;
storage["mbea_windowmode"] = document.getElementById("input_windowmode").value;
}
);
})
}
var list = "";
var setting = "";
setting = "[" + storage.getItem('mbea_setting') + "]";
//阿方很菜的,不会批量替换,预计下个版本直接批量替换
//console.log(setting);
console.log(setting.split('\n').length);
for(var l=0;l<setting.split('\n').length;l++){
setting = setting.replace(';
setting = setting.replace(')\n',"'],\n");
//console.log(setting);
}
setting = setting.replace(')',"']");
var arrayList = eval("(" + setting + ")");
console.log(arrayList);
for(var i=0;i<arrayList.length;i++){
list = list + '<div class="mbea_img"><img onclick="setCopy(\'[img]' + arrayList[i][1] + '[/img]\');" src="' + arrayList[i][1] + '" width="100%" title="' + arrayList[i][0] + '" ></div>';
};
var display = false;
var mbea_window_top = "95%";
var window_mode = storage.getItem('mbea_windowmode');
if(window_mode == "1"){
display = true;
mbea_window_top = "100px";
}else{
display = false;
mbea_window_top = "95%";
}
jq("head").append(`
<style type="text/css" >
.dialog
{
width:250px;
height:250px;
background-color: rgba(0,0,0,0.3);
-webkit-box-shadow:1px 1px 3px #292929;
-moz-box-shadow:1px 1px 3px #292929;
box-shadow:1px 1px 3px #292929;
margin:10px;
z-index: 899;
position: fixed;
left: 100px;
top: ` + mbea_window_top + `;
overflow:auto;
}
.dialog::-webkit-scrollbar
{
width: 4px;
width: 4px;
}
.dialog::-webkit-scrollbar-thumb
{
background: rgba(0,0,0,0.5);
}
.dialog-title
{
color:#fff;
background-color: rgba(0,0,0,0.5);
font-size:12pt;
font-weight:bold;
padding:4px 6px;
cursor:move;
}
.dialog-content
{
padding:4px;
color:#fff;
}
div.mbea_img{
width: 35px;
height: 35px;
display: inline-block;
padding:5px;
}
</style>
<script type="text/javascript">
var Dragging=function(validateHandler){ //参数为验证点击区域是否为可移动区域,如果是返回欲移动元素,负责返回null
var draggingObj=null; //dragging Dialog
var diffX=0;
var diffY=0;
function mouseHandler(e){
switch(e.type){
case 'mousedown':
draggingObj=validateHandler(e);//验证是否为可点击移动区域
if(draggingObj!=null){
diffX=e.clientX-draggingObj.offsetLeft;
diffY=e.clientY-draggingObj.offsetTop;
}
break;
case 'mousemove':
if(draggingObj){
draggingObj.style.left=(e.clientX-diffX)+'px';
draggingObj.style.top=(e.clientY-diffY)+'px';
}
break;
case 'mouseup':
draggingObj =null;
diffX=0;
diffY=0;
break;
}
};
return {
enable:function(){
document.addEventListener('mousedown',mouseHandler);
document.addEventListener('mousemove',mouseHandler);
document.addEventListener('mouseup',mouseHandler);
},
disable:function(){
document.removeEventListener('mousedown',mouseHandler);
document.removeEventListener('mousemove',mouseHandler);
document.removeEventListener('mouseup',mouseHandler);
}
}
}
function getDraggingDialog(e){
var target=e.target;
while(target && target.className.indexOf('dialog-title')==-1){
target=target.offsetParent;
}
if(target!=null){
return target.offsetParent;
}else{
return null;
}
}
Dragging(getDraggingDialog).enable();
</script>`);
jq("body").prepend(`<div id="dlgTest" class="dialog">
<div class="dialog-title">自定义表情<span style="float: right;cursor: pointer;" onclick="jq('div.dialog').css('top','100px');" title="最大化">[↑]</span><span style="float: right;cursor: pointer;" onclick="jq('div.dialog').css('top','95%');" title="最小化">\[↓]</span></div>
<div class="dialog-content">
` + list + `
</div>
</div>`);
document.onkeydown = function(e) {
var keyCode = e.keyCode;
var shiftKey = e.shiftKey;
var ctrlKey = e.ctrlKey;
if(ctrlKey && shiftKey && keyCode == 69) {
if(display == true){
jq('div.dialog').css('top','95%')
display = false;
}else{
jq('div.dialog').css('top','100px')
display = true;
}
}
};
})();