我正在尝试对使用CasperJS的书签进行逆向工程。
它创建了一个名为__utils__
的对象,我可以使用。
书签的链接在这里: -
http://casperjs.org/api.html#bookmarklet
哪个引用此JavaScript文件: -
https://raw.github.com/n1k0/casperjs/master/modules/clientutils.js
我搜索了整个源代码,但找不到对该对象如何创建的引用。
任何指针都会受到赞赏。
答案 0 :(得分:0)
查看api.html
的来源。在Just drag this link
查看href
属性中的JS之后。它接近结尾包含:
window.__utils__=new%20window.clientUtils();
答案 1 :(得分:0)
bookmarklet只运行一小段JavaScript代码,将clientutils.js的链接附加到文档的末尾。之后,它将每50毫秒运行一个匿名函数,检查脚本是否已加载(并使ClientUtils
函数可用),如果有,则停止运行该函数并创建window.__utils__
,从而使其在控制台中可用。这是更易读的格式的实际bookmarklet代码。理解它应该非常简单:
(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);
}
}());
})();