SyntaxError: unexpected token: identifier

最近在处理Javascript脚本的时候,做了净化(purify)处理,然后很多文件都出现了下面的错误:

SyntaxError: unexpected token: identifier

没啥经验,发现都在一行上怎么调试呢?

就写个PHP脚本处理吧

/**
* 根据列码获取内容
* https://www.*.cn/connect-getjscolbynum-1104-100-discussimg.html
**/
function getjscolbynum( $colnum = 6647, $colnumlen = 100, $file=’page-gallery’ )
{

switch($file){
case ‘page-gallery’:
$filename = ‘https://imgoss.*.cn/public/app/b2c/statics/js_mini/page-gallery.js’;
break;
case ‘max_footer_mini’:
$filename = ‘https://imgoss.*.cn/themes/MAX360buy/images/max_footer_mini.js’;
break;
case ‘discussimg’:
$filename = ‘https://imgoss.*.cn/public/app/b2c/statics/js_mini/discuss-img.js’;
break;

}
$ffff = file_get_contents( $filename );
echo substr($ffff,$colnum,$colnumlen);
}

通过比对,发现如果涉及到匿名函数的时候,后面的分号要特别注意了,必须写上分号,要不很容易出现上面这个错误提示。

获取当前页面的全部链接用于检查内外链情况

最近,在完善ECSTORE的分销系统时,因为早期的遗留问题,造成页面的链接的不统一,要弄好分销系统的第一步就是不能链接串了,所以需要排查,一个个的排查很累噢。

下面就是使用原生的JS获取当前的链接辅助排查。

// 列出当前页面的全部链接

console.log('START');
for( var aa in document.links){
console.log( document.links[aa].href )
};
console.log('END');

// 列出不以什么为开头的链接

console.log('START');
var matchURL = /http:\/\/m\.shanmai\.cn\/p\/wiwy\//;
for( var aa in document.links){
if( document.links[aa].href.test(matchURL)===false ) console.log( document.links[aa].href );
};
console.log('END');

// 列出不以什么为开头的链接并设置对象的外框在页面中显示出来

console.log("START");
var matchURL=/http:\/\/m\.shanmai\.cn\/p\/wiwy\//;
for(var aa in document.links){
if(document.links[aa].href.test(matchURL)===false){
console.log(document.links[aa].href);
document.links[aa].style="display: inline-block;background-color: #ff0000;color: #00ff00;border: 6px solid #0000ff;"}
}
console.log("END");

// 列出本站且不以什么为开头的链接并设置对象的外框在页面中显示出来

console.log("START");
var matchURL=/http:\/\/m\.shanmai\.cn\/p\/wiwy\//;
for(var aa in document.links){
var oo=document.links[aa];
if(oo.href.test(/shanmai\.cn/)){
if(oo.href.test(matchURL)===false){
console.log(oo.href);
document.links[aa].style="display: inline-block;background-color: #ff0000;color: #00ff00;border: 6px solid #0000ff;"
}
}
}
console.log("END");

使用办法就是直接打开浏览器的开发者工具,或者直接按F12键打开,然后在控制台中输入命令即可。

JS-百度云盘垃圾文件清理免费版

最近百度云盘增加了垃圾文件清理的功能,他能自动筛选出重复的文件及空文件,可惜,他是给会员使用的。

难道我们只能体验不能自动?

那肯定是不行的了,毕竟百度云盘的API接口没有开放,你想自动化都是没办法的啦,除非你将文件都拷贝到“我的应用数据”里面,而且还要开启早期的接口权限,要不基本上我看没戏。

扩展:百度个人云存储(PCS) | 文件API列表

那么我们能做啥呢?

列出清单然后一个个复制有点不方便噢,感觉一个个的删除过去麻烦,怎么办?那就自动列出一个清单,方便我们复制粘贴呗。

只要在垃圾文件清理界面,开启浏览器的“开发者工具(按F12就能打开)”,如果你不知道就算了,文章也别看下去了。

然后在控制台中,粘贴下面的代码,然后回车就会新打开一个新页面,然后里面都是当前页的文件及目录了,比较好的是,按照目录来展示噢,这个是唯一的亮点。

var wWindow = open();
var aItems = document.querySelectorAll('dd.g-clearfix.group-view-item.choosen');
var dLists = {};
aItems.forEach(function(el)
{
 let path = el.querySelectorAll('div.file-path a')[0].innerHTML.replace(/\s*/g,'');
 let value = el.querySelectorAll('div.file-name a')[0].innerHTML;
 if(dLists[ path ]==undefined) dLists[ path ]=[];
 dLists[ path ].push(value);
});
for( path in dLists )
{
 console.log(path);
 wWindow.document.write( '<h1>' + path + '</h1>' );
 wWindow.document.write( '<ul>' );
 if(dLists[path].length>0)
 {
 dLists[path].forEach(function(row){
 wWindow.document.write( '<li>'+row+'</li>' );
 });
 }else wWindow.document.write( '<li>没有文件</li>' );
 wWindow.document.write( '</ul>' );
}
wWindow.document.close();

然后,根据清单一个个手动删除吧。

当然,如果你有开通PCS权限的话,他是提供文件接口的,就可以根据这个清单自动删除了噢,具体接口还能不能用,没有尝试,所以,呵呵,自行测试呗。不过估计有点悬。