繁体   English   中英

如何为此书签创建JavaScript对象?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM