每当投递给Elsevier的文章通过初审进入审稿阶段,通讯作者一般都会收到track链接(https://track.authorhub.elsevier.com/?uuid=*)用于追踪进度⬇

以up的稿件进度track为例
Track链接反映的信息极为有限,审稿人数量超过2时便会显示2+,有没有办法看到更细节的内容呢?
怀着试一试的心态,UP用F12打开了开发者工具,选中网络并刷新页面

网络请求详情
可以看到我们打开track页面由浏览器发起的所有请求。包括网页整体的框架(第一条请求)和各种资源的请求。
我们的track链接中的uid唯一对应了我们的稿件,因此关于我们稿件的详情,就在图中与uid同名的json文件中。

关于审稿进度的详情
JSON中的Date字段即为时间戳形式的日期。接下来我们可以再来点前端小知识,让页面像下面两张效果图一样呈现出来。

我们希望看到的精确的评审条数

精确到秒的时间
不难想到,Elsevier的track页面逻辑是有我们请求到JSON数据并在本地进行处理,然后渲染到页面中,因此基本思路就是找到处理JSON的JS文件,修改其中的代码,并使修改后的代码参与到页面渲染中;
这个关键的JS文件我已经替大家找到了【index.98ce9a5f.js】:

所以我们无法看到2以上的具体数字的罪魁祸首就是下面这行代码:
const On = e=>e > 2 ? "2+" : e.toString(); // 这里的e其实就代表reviewEvents 那么如何处理便很简单了,我们右键将代码另存一份,可以用记事本打开,然后修改这行代码:删掉判断逻辑,直接显示具体数值:
const On = e=>e.toString(); 修改后就能显示具体数值了,如果想显示每个详情的具体时间,可以看下一节内容,如果到此就满足需求了,可以跳过下一节,直接看最后一部分内容如何实现本地的JS替换请求中的JS
图中蓝色的代码块负责渲染我们看到的【Reviews xxx: n】这部分内容,可以看到代码中给On(e)函数传入了On(r.getNumberOfReviewerCompletedEvents()),而r实例化的代码就在第一行:const r = new Rn(e,n); 因此我们找到Rn类,好巧不巧,就在这部分代码的上面:

我们可以修改getNumberOfEventsForReviewEventName函数,实现将审稿进度打印到控制台:
// 替换原本的getNumberOfEventsForReviewEventName方法
getNumberOfEventsForReviewEventName(e) {
let detail = this.reviewEvents.filter((t => t.Event === e && t.Revision === this.revision)) // 如果删掉.filter函数的内容,则能看到以往历史审稿信息,例如上次修稿审稿邀请信息等
detail.forEach((e => {
e.Date = getFormattedTime(e.Date) // 将Date字段由时间戳转换为字符串
}))
console.log(e, detail); // 打印到控制台
return detail.length
} 在class Rn类前添加getFormattedTime函数,这个函数的功能是将时间戳转换为时间信息:
// 获取更精确的时间信息
const getFormattedTime = (timestamp) => {
const date = new Date(timestamp * 1000); // 将时间戳转换为毫秒
const year = date.getFullYear();
const month = ('0' + (date.getMonth() + 1)).slice(-2); // 月份从 0 开始,需要加 1
const day = ('0' + date.getDate()).slice(-2);
const hours = ('0' + date.getHours()).slice(-2);
const minutes = ('0' + date.getMinutes()).slice(-2);
const seconds = ('0' + date.getSeconds()).slice(-2);
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}; ❗ 如果删掉let detail = this.reviewEvents.filter((t => t.Event === e && t.Revision === this.revision)) 中.filter函数的内容,则能看到以往历史审稿信息,例如上次修稿审稿邀请信息等。
为了在页面中也显示精确时间,我们需要在当前文件搜索“Last review activity”,找到如下位置,替换_n为getFormattedTime,也就是我们刚刚添加的函数的函数名。

替换这个位置的_n函数
到此代码修改完毕,下面实现用本地代码替换请求中的代码.
我们复制track网址中的域名:track.authorhub.elsevier.com,以此创建一个同名的文件夹,并将修改好的代码移到这里。

PS: 有的浏览器替换规则不一样,可能需要在域名文件夹外再套一层,再选择外层文件夹
回到我们的控制台,进入源代码,选择覆盖(这两项找不到的友友可以点击“》”查看是否被折叠了),打开文件夹选择我们刚刚创建好的文件夹(有的浏览器替换规则不一样,可能需要在域名文件夹外再套一层,再选择外层文件夹),如下图所示

Chrome这里可能是英文的. 我记得是..Source - Override
最后一步:选中【启用本地替代】,再次刷新页面,回到控制台:(网络那一项出现了警告符号就代表替代成功了)

同一个id对应同一个审稿人

更精准的时间显示(上一张效果图那篇文章已经AC了,大家结合这一张看吧)
其他的track页面也能像这样开启本地替代. 到此目的达成
!!!需要注意的两点:
1. 控制台必须保持打开
2. 有的浏览器可能需要在域名文件夹外面要再套一个文件夹,替换操作时选择该文件夹,浏览器才能识别到域名和对应文件