资讯专栏INFORMATION COLUMN

监控动态创建的script标签

ARGUS / 1696人阅读

摘要:动态创建标签很常用,比如等等技术都会用到,有时候我们会希望能够监控和拦截动态创建的标签。下面提供了一种代理的方法来监控。上面的代码加载完后,就可以监控到或者两种方式加载的了原文

动态创建script标签很常用,比如jsonp、amd 等等技术都会用到, 有时候我们会希望能够监控和拦截动态创建的script标签。
下面提供了一种代理document.createElement的方法来监控。

var _createElement = document.createElement
var __define_src = function(script){
  var src
  Object.defineProperty(script,"src",{
    get : function(){
      return src
    },
    set : function(s){
      src = s
      script.setAttribute("src",s)
    }
  })

  var _setAttribute = script.setAttribute
  script.setAttribute = function(){
    var args = Array.prototype.slice.call(arguments)
    if(args[0] === "src"){
      //do something here
      console.log("setAttribute",args[1])
    }
    _setAttribute.apply(script,args)
  }
}

document.createElement = function(tagName){
  var dom
  dom = _createElement.call(document,tagName)
  if(tagName.toLowerCase() === "script"){
    __define_src(dom)
  }
  return dom
}

上面的代码加载完后,就可以监控到 script.src 或者 script.setAttribute 两种方式加载的JS了

var script = document.createElement("script")
script.src = "http://s11.cnzz.com/z_stat.php?id=1256295486&web_id=1256295486"
script.setAttribute("src","https://s11.cnzz.com/z_stat.php?id=1256295486&web_id=1256295486")

原文 https://friskfly.github.io/2016/04/12/%E7%9B%91%E6%8E%A7%E5%8A%A8%E6%80%81%E5%88%9B%E5%BB%BA%E7%9A%84script%E6%A0%87%E7%AD%BE/

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/79237.html

相关文章

  • 如何优雅处理前端异常?

    摘要:二需要处理哪些异常对于前端来说,我们可做的异常捕获还真不少。总结一下,大概如下语法错误代码异常请求异常静态资源加载异常异常异常跨域崩溃和卡顿下面我会针对每种具体情况来说明如何处理这些异常。 前端一直是距离用户最近的一层,随着产品的日益完善,我们会更加注重用户体验,而前端异常却如鲠在喉,甚是烦人。一、为什么要处理异常?异常是不可控的,会影响最终的呈现结果,但是我们有充分的理由去做这样的事...

    zoomdong 评论0 收藏0
  • 读书笔记(04) - 错误监控 - JavaScript高级程序设计

    摘要:项目中我们可通过设置采集率,或对规定时间内数据汇总再上报,减少请求数量,从而缓解服务端压力。借鉴别人的一个例子只采集上报错误参考文档高级程序设计如何优雅处理前端异常作者以乐之名本文原创,有不当的地方欢迎指出。 showImg(https://segmentfault.com/img/bVbnuud?w=640&h=640); 错误类型 即时运行错误 (代码错误) 资源加载错误 常见...

    Null 评论0 收藏0
  • 在单页应用中,如何优雅上报前端性能数据

    摘要:本文的介绍的是如何设计一个通用的可以以较小的侵入性,自动上报前端的性能数据。具体的做法可以看我的上一篇文章在单页应用中,如何优雅的监听的变化。三如何上报性能数据那么如何上报性能数据呢,我们第一反应就是通过请求的形式来上报前端性能数据。   最近在做一个较为通用的前端性能监控平台,区别于前端异常监控,前端的性能监控主要需要上报和展示的是前端的性能数据,包括首页渲染时间、每个页面的白屏时...

    KitorinZero 评论0 收藏0
  • 在单页应用中,如何优雅上报前端性能数据

    摘要:本文的介绍的是如何设计一个通用的可以以较小的侵入性,自动上报前端的性能数据。具体的做法可以看我的上一篇文章在单页应用中,如何优雅的监听的变化。三如何上报性能数据那么如何上报性能数据呢,我们第一反应就是通过请求的形式来上报前端性能数据。   最近在做一个较为通用的前端性能监控平台,区别于前端异常监控,前端的性能监控主要需要上报和展示的是前端的性能数据,包括首页渲染时间、每个页面的白屏时...

    curried 评论0 收藏0

发表评论

0条评论

ARGUS

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<