')
$("body").append(emojisPanel)
var emojRange = [
[128513, 128591],[127744,128511],[128640, 128704],[9986, 10160]
];
for (var i = 0; i < emojRange.length; i++) {
var range = emojRange[i];
for (var x = range[0]; x < range[1]; x++) {
var d = $('
'+x+';
');
d.addClass("emoji-item")
d.attr("code","0x"+x.toString(16))
d.click(function(){
var code = $(this).attr("code")
var msg = $("#message").val()
var start = $("#message")[0].selectionStart
var end = $("#message")[0].selectionEnd
$("#message").val(msg.substring(0, start) + String.fromCodePoint(code) + msg.substring(end, msg.length))
})
emojisPanel.append(d)
}
}
var button = $('
😄
')
$(button).click(function(){
if($(".emojis-panel").css("display")==='none'){
$(".emojis-panel").css("position", "absolute");
$(".emojis-panel").css("top", $('#message').offset().top - 310);
$(".emojis-panel").css("left", $('#message').offset().left);
$(".emojis-panel").show(200);
}else{
$(".emojis-panel").hide(200)
}
})
$("#message").focus(function(){
if($(".emojis-panel").css("display")!='none'){
$(".emojis-panel").hide(200)
}
})
$("#submit").parent().css("display","flex")
$("#submit").parent().append(button)
}
}
]
Function.prototype.getMultiLine = function() {
var lines = new String(this);
lines = lines.substring(lines.indexOf("/*") + 3, lines.lastIndexOf("*/"));
return lines;
}
String.prototype.format= function() {
if(arguments.length === 0) return this;
var param = arguments[0], str= this;
if(typeof(param) === 'object') {
for(var key in param)
str = str.replace(new RegExp("\\{" + key + "\\}", "g"), param[key]);
return str;
} else {
for(var i = 0; i < arguments.length; i++)
str = str.replace(new RegExp("\\{" + i + "\\}", "g"), arguments[i]);
return str;
}
}
function hideBlackListUserContent(){
$(".media.thread.tap") && $(".media.thread.tap").each(function(i,item){
var id = $(item).children().eq(0).attr("href")
id = id.replace("user-","").replace(".htm","")
if(isBan(id,BLACK_TYPE_ALL) || isBan(id,BLACK_TYPE_THREAD) ){
$(item).hide()
}
})
$(".media.post") && $(".media.post").each(function(i,item){
var id = $(item).children().eq(0).attr("href")
id = id.replace("user-","").replace(".htm","")
if(isBan(id,BLACK_TYPE_ALL) || isBan(id,BLACK_TYPE_REPLY) ){
$(item).hide()
}
})
}
function isBan(userId,type){
var content = BLACK_LIST[userId];
if(content == undefined){
return false;
}
if(content == "" && type == BLACK_TYPE_THREAD){
return true;
}
return content == type
}
function localStorageGetItem(key,defaultVal){
let val = localStorage.getItem(key)
return val ? val : defaultVal
}
function localStorageGetStringArray(key,defaultVal,split=","){
let value = localStorage.getItem(key)
return (value && value.length > 0) ? value.split(split) : defaultVal
}
// 读取黑名单数据的兼容方法,最初版本是用数组保存,现在改成对象,如果 localStorage 保存的是数组格式数据,在这里转换为对象
function loadBlackList(){
let value = localStorage.getItem("BLACK_LIST")
if(!value || value.length == 0){
return {}
}
if(/^(\d+,)*\d+$/.test(value)){
let blackList = {}
let array = value.split(",");
for(let i of array){
blackList[i]=""
}
return blackList
}
return JSON.parse(value);
}
function loadSettingFromLocalStorage(){
SIGN_TITLE = localStorageGetItem("SIGN_TITLE","签到")
HAS_HIDDEN_CONTENT_KEYWORD = localStorageGetItem("HAS_HIDDEN_CONTENT_KEYWORD","本帖含有隐藏内容")
AUTO_REPLY_MSG = localStorageGetStringArray("AUTO_REPLY_MSG",[])
BLACK_LIST = loadBlackList()
BACKGROUND_COLOR = localStorageGetItem("BACKGROUND_COLOR","#E3EDCD")
AUTHOR_BACKGROUND_COLOR = localStorageGetItem("AUTHOR_BACKGROUND_COLOR",AUTHOR_BACKGROUND_COLOR)
AUTHOR_QUOTE_BACKGROUND_COLOR = localStorageGetItem("AUTHOR_QUOTE_BACKGROUND_COLOR",AUTHOR_QUOTE_BACKGROUND_COLOR)
FONT_COLOR = localStorageGetItem("FONT_COLOR","#000000")
let fnOpenStatus = localStorageGetStringArray("fnOpenStatus",[])
for(let i =0;i屏蔽用户帖子")
var button2 = $("")
var button3 = $("")
$(button).click(function(){
var id = $(this).attr("user-id")
BLACK_LIST[id] = BLACK_TYPE_THREAD
var username = $(this).attr("user-name")
BLACK_LIST["username-"+id] = username
hideBlackListUserContent()
saveSettingFromLocalStorage()
$("#user-operate-menu").hide();
});
$(button2).click(function(){
var id = $(this).attr("user-id")
BLACK_LIST[id] = BLACK_TYPE_REPLY
var username = $(this).attr("user-name")
BLACK_LIST["username-"+id] = username
hideBlackListUserContent()
saveSettingFromLocalStorage()
$("#user-operate-menu").hide();
});
$(button3).click(function(){
var id = $(this).attr("user-id")
BLACK_LIST[id] = BLACK_TYPE_ALL
var username = $(this).attr("user-name")
BLACK_LIST["username-"+id] = username
hideBlackListUserContent()
saveSettingFromLocalStorage()
$("#user-operate-menu").hide();
});
$("#user-operate-menu").empty()
$("#user-operate-menu").append(button)
$("#user-operate-menu").append(button2)
$("#user-operate-menu").append(button3)
$("#user-operate-menu").css("position", "absolute");
$("#user-operate-menu").css("top", $(this).offset().top);
$("#user-operate-menu").css("left", $(this).offset().left - 70);
$("#user-operate-menu").show();
$('#user-operate-menu').unbind()
$('#user-operate-menu').mouseleave(function(){
//console.log("鼠标移出悬浮菜单")
$("#user-operate-menu").hide();
})
})
$('.avatar-3').mouseleave(function(){
var href = $(this).parent().attr("href")
var offset = $("#user-operate-menu").offset()
var width = $("#user-operate-menu").outerWidth(true) + 10
var height = $("#user-operate-menu").outerHeight(true) + 10
if(window.__xx && window.__yy){
if(window.__xx > Math.ceil(offset.left + width) || window.__yy > Math.ceil(offset.top + height) || window.__xx < Math.ceil(offset.left) || window.__yy < Math.ceil(offset.height)){
$("#user-operate-menu").hide();
}
}
//console.log("mouse:"+window.__xx+","+window.__yy+" div:"+offset.left+","+offset.top+","+width+","+height+" "+Math.ceil(offset.left + width)+","+Math.ceil(offset.top + height))
})
window.onClickFunctionSwitch = function (checkbox,fnPanelId){
if(checkbox.checked){
$("#"+fnPanelId).show(250)
}else{
$("#"+fnPanelId).hide(250)
}
}
function functionListHtml(){
/**
{describe}
{html}
*/
}
function updateFunctionSwitch(){
actionArray.forEach(function(e,i){
e.open = $("#fn-checkbox-"+i)[0].checked
})
}
function loadJSColor(){
var input = $("[data-jscolor]");
for(var i=0;i";
}else{
html += "