成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

監(jiān)控動態(tài)創(chuàng)建的script標(biāo)簽

ARGUS / 1721人閱讀

摘要:動態(tài)創(chuàng)建標(biāo)簽很常用,比如等等技術(shù)都會用到,有時候我們會希望能夠監(jiān)控和攔截動態(tài)創(chuàng)建的標(biāo)簽。下面提供了一種代理的方法來監(jiān)控。上面的代碼加載完后,就可以監(jiān)控到或者兩種方式加載的了原文

動態(tài)創(chuàng)建script標(biāo)簽很常用,比如jsonp、amd 等等技術(shù)都會用到, 有時候我們會希望能夠監(jiān)控和攔截動態(tài)創(chuàng)建的script標(biāo)簽。
下面提供了一種代理document.createElement的方法來監(jiān)控。

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
}

上面的代碼加載完后,就可以監(jiān)控到 script.src 或者 script.setAttribute 兩種方式加載的JS了

var script = document.createElement("script")
script.src = "http://s11.#/z_stat.php?id=1256295486&web_id=1256295486"
script.setAttribute("src","https://s11.#/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/

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/79237.html

相關(guān)文章

  • 如何優(yōu)雅處理前端異常?

    摘要:二需要處理哪些異常對于前端來說,我們可做的異常捕獲還真不少。總結(jié)一下,大概如下語法錯誤代碼異常請求異常靜態(tài)資源加載異常異常異??缬虮罎⒑涂D下面我會針對每種具體情況來說明如何處理這些異常。 前端一直是距離用戶最近的一層,隨著產(chǎn)品的日益完善,我們會更加注重用戶體驗,而前端異常卻如鯁在喉,甚是煩人。一、為什么要處理異常?異常是不可控的,會影響最終的呈現(xiàn)結(jié)果,但是我們有充分的理由去做這樣的事...

    zoomdong 評論0 收藏0
  • 讀書筆記(04) - 錯誤監(jiān)控 - JavaScript高級程序設(shè)計

    摘要:項目中我們可通過設(shè)置采集率,或?qū)σ?guī)定時間內(nèi)數(shù)據(jù)匯總再上報,減少請求數(shù)量,從而緩解服務(wù)端壓力。借鑒別人的一個例子只采集上報錯誤參考文檔高級程序設(shè)計如何優(yōu)雅處理前端異常作者以樂之名本文原創(chuàng),有不當(dāng)?shù)牡胤綒g迎指出。 showImg(https://segmentfault.com/img/bVbnuud?w=640&h=640); 錯誤類型 即時運(yùn)行錯誤 (代碼錯誤) 資源加載錯誤 常見...

    Null 評論0 收藏0
  • 在單頁應(yīng)用中,如何優(yōu)雅上報前端性能數(shù)據(jù)

    摘要:本文的介紹的是如何設(shè)計一個通用的可以以較小的侵入性,自動上報前端的性能數(shù)據(jù)。具體的做法可以看我的上一篇文章在單頁應(yīng)用中,如何優(yōu)雅的監(jiān)聽的變化。三如何上報性能數(shù)據(jù)那么如何上報性能數(shù)據(jù)呢,我們第一反應(yīng)就是通過請求的形式來上報前端性能數(shù)據(jù)。 ??最近在做一個較為通用的前端性能監(jiān)控平臺,區(qū)別于前端異常監(jiān)控,前端的性能監(jiān)控主要需要上報和展示的是前端的性能數(shù)據(jù),包括首頁渲染時間、每個頁面的白屏?xí)r...

    KitorinZero 評論0 收藏0
  • 在單頁應(yīng)用中,如何優(yōu)雅上報前端性能數(shù)據(jù)

    摘要:本文的介紹的是如何設(shè)計一個通用的可以以較小的侵入性,自動上報前端的性能數(shù)據(jù)。具體的做法可以看我的上一篇文章在單頁應(yīng)用中,如何優(yōu)雅的監(jiān)聽的變化。三如何上報性能數(shù)據(jù)那么如何上報性能數(shù)據(jù)呢,我們第一反應(yīng)就是通過請求的形式來上報前端性能數(shù)據(jù)。 ??最近在做一個較為通用的前端性能監(jiān)控平臺,區(qū)別于前端異常監(jiān)控,前端的性能監(jiān)控主要需要上報和展示的是前端的性能數(shù)據(jù),包括首頁渲染時間、每個頁面的白屏?xí)r...

    curried 評論0 收藏0

發(fā)表評論

0條評論

ARGUS

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<