[英]How is this JavaScript object created for this bookmarklet?
我试图对使用CasperJS的小书签进行反向工程。
它创建了一个名为__utils__
的对象,可以用来执行控制台命令。
小书签的链接在这里:
http://casperjs.org/api.html#bookmarklet
哪个引用了此JavaScript文件:
https://raw.github.com/n1k0/casperjs/master/modules/clientutils.js
我已经搜索了整个源代码,但是找不到关于如何创建该对象的参考。
任何指针将不胜感激。
查看api.html
的源api.html
。 Just drag this link
,然后在href
属性中查看JS。 在结尾处包含:
window.__utils__=new%20window.clientUtils();
书签小程序仅运行一小段JavaScript代码,该代码将指向clientutils.js的链接附加到文档的末尾。 之后,它将每隔50毫秒运行一个匿名函数,以检查脚本是否已加载(并使ClientUtils
函数可用),如果已加载,它将停止运行该函数并创建window.__utils__
,从而使该window.__utils__
可用于控制台。 这是更具可读性的实际小书签代码。 它应该很容易理解:
(function () {
void(function () {
if (!document.getElementById('CasperUtils')) {
var CasperUtils = document.createElement('script');
CasperUtils.id = 'CasperUtils';
CasperUtils.src = 'https://raw.github.com/n1k0/casperjs/master/modules/clientutils.js';
document.documentElement.appendChild(CasperUtils);
var interval = setInterval(function () {
if (typeof ClientUtils === 'function') {
window.__utils__ = new window.ClientUtils();
clearInterval(interval);
}
}, 50);
}
}());
})();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.