自定义工具小技巧
everedit吧
全部回复
仅看楼主
level 2
Anix2012 楼主
求加精! 加精!
网上有很多在线工具,我就想,如果内置引擎是JavaScript就好了.这样把线上的工具集成到EverEdit里面就易如反掌了.但是可惜是JScript,很多ES5原生函数根本不支持,哎,欲哭无泪.
今晚发现了老朋友"摸鸡拉"(Mozilla)还是很够朋友的:https://developer.mozilla.org/zh-CN/
里面提供了各种函数的老版本兼容方法.
当JScript抛出错误,说不支持xx方法的时候,就可以去搜索下对应的函数,在文件中加入对应的实现方法,JScript就可以继续顺利执行了.
2017年10月11日 16点10分 1
level 2
Anix2012 楼主
比如JScript在运行 array.map() 的时候,有可能会报错.
这时候百度 array.map(),找到array.map()的MDN结果
找到兼容的方法
复制到对应的文件中,就不会报错了.
2017年10月11日 16点10分 2
level 2
Anix2012 楼主
step②
双击运行js,把 js 文件中JScript不支持的函数,比如 Object.create()等等方法,全部添加兼容方法到文件中
我本地化的版本中,需要兼容的方法有
Object.create
Object.keys
Array.prototype.reduce
Array.prototype.map
Array.prototype.forEach
兼容了以后就不会再弹出提示了.
2017年10月12日 10点10分 4
level 2
Anix2012 楼主
作为一个扩展,还需要处理下输入输出,下面给出处理代码:
/*************更改 以适应 EverEdit ***********************/
(function() {
var doc = App.ActiveDoc;
var txt = doc.SelText || doc.Text;
var filename = doc.PathName;
var results = CSSLint.verify((txt));
var messages = results.messages;
//设置图标路径
doc.ImageList = AppPath + "/image/css16.png";
for (i = 0, len = messages.length; i < len; i++) {
OutputLine(filename + '(' + messages[i].line + ',' + messages[i].col + '):[' + messages[i].type + ']' + messages[i].message + '\r\n');
messages[i].type == 'warning' ? doc.SetLineImage(messages[i].line, 1) : doc.SetLineImage(messages[i].line, 2);
doc.SetLineTooltip(messages[i].line, messages[i].message);
}
}());
/*************更改 以适应 EverEdit End***********************/
把以上代码复制到文件末尾.
然后[扩展→保存为脚本],命名为CSSLint,
再 [扩展→刷新脚本菜单] 就可以看到csslint出现在扩展菜单栏下了.
2017年10月12日 10点10分 5
1