当前位置:  开发笔记 > 编程语言 > 正文

如何知道哪个网页正在调用外部JavaScript脚本

如何解决《如何知道哪个网页正在调用外部JavaScript脚本》经验,为你挑选了1个好方法。

许多网页都可以使用外部JavaScript.如何知道哪个网页使用外部js脚本?例如,我有一个javascript脚本s.js. 是否有可能s.js的函数可以检查哪个页面正在使用s.js?



1> Igor Zevaka..:

locationobject包含有关浏览器当前所在URL的所有信息.

    hash        Returns the anchor portion of a URL
    host        Returns the hostname and port of a URL
    hostname    Returns the hostname of a URL
    href        Returns the entire URL
    pathname    Returns the path name of a URL
    port        Returns the port number the server uses for a URL
    protocol    Returns the protocol of a URL
    search      Returns the query portion of a URL

编辑现在,回答你实际想要问的问题,那就是如何跟踪哪些页面正在使用你的javascript文件.我认为(我之前没有实现过这样的东西)是使用与分析网站使用相同的策略.

他们似乎都使用跟踪像素的变体,浏览器下载脚本文件(例如QuantServer - http://edge.quantserve.com/quant.js).然后,该脚本从谷歌服务器请求1x1像素,并将网页的URL编码为图像的地址.所以对于stackoverflow.com,像素网址是:

http://pixel.quantserve.com/pixel;r=3547206;fpan=0;fpa=P0-82955756-1264139666260;ns=0;url=http%3A%2F%2Fstackoverflow.com ....(我没有不会透露我的浏览器发送的地址,因为我真的不知道它揭示了什么:)).

如您所见,该网站的网址是图片网址的一部分.在服务器端,您需要有一个处理此图像的处理程序,并通过从图像URL中提取页面地址来记录该页面地址.

之所以这是图像而不是AJAX请求的原因是因为AJAX请求受到浏览器XSS限制.基本上,浏览器不会对不是为页面提供服务的网站进行AJAX调用.这意味着www.otherpeopleswebsite.com上的页面不允许向www.mywebsite.com发出AJAX调用.对图像(或javascript文件)没有这样的限制.

因此,实现这样的事情的简单系统会对此产生影响:

//s.js
var oldLoad = window.onload;
window.onload = function(){
  if (oldLoad)
    oldLoad();
    var img = document.createElement('img');
    img.setAttribute('src', 'www.mysite.com/pixel?url=' + window.location.href);
}

在服务器端,pixel处理程序将提供1x1px映像,将内容类型设置为适当的值(即image/gif),提取查询字符串并记录URL.根据您的服务器技术,有很多方法可以实现它.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有