原生js调用已有方法


需求:某应用APP用户首次加载会添加一段链接用于推销,点击X号会移除该段链接(即调用一次X号的click)

因为不希望该链接产生,故需要将其移除,而该应用源码并非自己开发,工程不小查找该源码会很耗时,但是

其每次都会引入一个公共的jsp文件,故可以在该jsp内手写js控制

jquery调用已有元素的click:$(".SmartBanner-close").click();获取元素后直接调用即可

原生js调用已有元素的click:

    document.getElementsByClassName("SmartBanner-close")[0].click();亲测不好使

    document.getElementsById("SmartBanner-close")[0].click();据传好使,因需求元素只有className也就没测

解决方案:

  

  //获取该节点元素 
  var SmartBannerClose = document.getElementsByClassName("SmartBanner-close")[0];
  //执行该方法,触发事件
  fireClick(SmartBannerClose );

  function fireClick(node){
    if (document.createEvent) {

      //此两步同时存在
                 //创建一个事件对象
      var evt = document.createEvent('MouseEvents');
                 //初始化该事件对象
      evt.initEvent('click', true, false);
                 //合并事件
      node.dispatchEvent(evt); 
    } else if(document.createEventObject) {
      node.fireEvent('onclick') ; 
    } else if (typeof node.onclick == 'function') {
      node.onclick(); 
    }
  }    

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM