不支持显示特殊符号
TomsProject opened this issue · 5 comments
TomsProject commented
TomsProject commented
貌似把 uptimerobot.js 的 monitor.friendly_name 内容替换一下就可以了(Chrome 84 可以,其它浏览器没试)
let name = monitor.friendly_name.replace(/'/gi, "'");
name = name.replace(/(/gi, "(");
name = name.replace(/)/gi, ")");
name = name.replace(/=/gi, "=");
name = name.replace(/[/gi, "[");
name = name.replace(/]/gi, "]");
name = name.replace(/"/gi, '"');
name = name.replace(/</gi, "<");
name = name.replace(/>/gi, ">");
apps.push({
id: monitor.id,
name: name,
url: monitor.url,
status: status,
average: average,
daily: daily,
total: total,
});
// 烂代码,大佬勿喷
renbaoshuo commented
我觉得封装成函数更好一些
function convert(str){
str = str.replace(/(\\u)(\w{1,4})/gi, function($0){
return (String.fromCharCode(parseInt((escape($0).replace(/(%5Cu)(\w{1,4})/g,"$2")),16)));
}).replace(/(&#x)(\w{1,4});/gi, function($0){
return String.fromCharCode(parseInt(escape($0).replace(/(%26%23x)(\w{1,4})(%3B)/g,"$2"),16));
}).replace(/(&#)(\d{1,6});/gi, function($0){
return String.fromCharCode(parseInt(escape($0).replace(/(%26%23)(\d{1,6})(%3B)/g,"$2")));
});
return str;
}
方便调用
yb commented
HTML 实体符号挺多的,靠 replace 无法从根本解决问题,在最新的 v1.4.0 更新中引入了 htmr 进行转义,已解决这个问题;
谢谢二位提出的 issue!
renbaoshuo commented
HTML 实体符号挺多的,靠 replace 无法从根本解决问题,在最新的 v1.4.0 更新中引入了 htmr 进行转义,已解决这个问题;
谢谢二位提出的 issue!
@yb 另外,我稍改了一下页面样式,适配了我所用的主题,页面链接:https://renbaoshuo.github.io/status/ ,且页面下方已经注明版权,请问可以吗?
yb commented
@yb 另外,我稍改了一下页面样式,适配了我所用的主题,页面链接:https://renbaoshuo.github.io/status/ ,且页面下方已经注明版权,请问可以吗?
of course,欢迎使用