专栏首页用户4667108的专栏使用JS异步回调解决pjax加载问题

使用JS异步回调解决pjax加载问题

pjax的坑

使用pjax会导致部分js插件无法加载,最后我选择异步加载解决问题。 你可能会问异步就够了为什么还有个callback是干啥的,不急你先看看代码。

 function loadScript(src, callback) {
  var script = document.createElement('script'),
head = document.getElementsByTagName('head')[0];
script.type = 'text/javascript';
script.charset = 'UTF-8';
script.src = src;
if (script.addEventListener) {
  script.addEventListener('load', function () {
      callback();
    }, false);
  } else if (script.attachEvent) {
    script.attachEvent('onreadystatechange', function () {
        var target = window.event.srcElement;
        if (target.readyState == 'loaded') {
          callback();
        }
      });
    }
    head.appendChild(script);
  }

问题

pjax我尝试异步加载然后立马执行页面的js代码,发现页面js中对象Undefined 未定义,我第一反应不对啊,依赖的js文件都加载了,控制台执行都能页面上这段js,我想是不是还没加载好js文件,于是写了这个异步加载函数。

问题继续

我写了个loadScript("",某回调函数()) 回调函数里面执行了有关这个js的代码 结果依然未定义 我蒙了 突然我发现我有点傻 回调函数()作为参数的时候这个函数已经被执行了,所以出现了未定义,哦! 于是我代码修改为 loadScript("js文件",函数名) 把()去掉就解决了 完成!修好了。

后记

这个问题真的有点傻,自己意外造成了这些错误,还学了这么久,不过我前端也不是很好,突然我就释然了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 网页状态监测项目_Nokpage

    最近网站从腾讯云搬迁到某跑路又移动了Horain(某云),最近时常的502 500,但是我又不一定一直盯着我的网站,于是我百度了一圈网页监测源码,2015年的源...

    乔千
  • 网站pjax后统计浏览量极少问题

    这不最近刚装上了这个博客,博客的主题是 handsome, 然后最近我发现百度统计有点不正常,主动提交收录也是抽风。

    乔千
  • 如何判断蜘蛛的真实性

    最近又想挖坑了,由于开发的网页模板计划对seo极差,只能单独给出seo页面,但是为了避免滥用,我们也要考虑很多事情那我们又要如何判断蜘蛛是否就是真的蜘蛛呢?

    乔千
  • 原 模块化编程之require.js

    作者:汪娇娇 日期:2016.5.4 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了。后来,代码越来越多,一个文件不够了,...

    jojo
  • 客户端的js js脚本的引入 js的解析过程

    window对象定义了一些属性,用来指定当前窗口的一些信息。通过该属性的引用,可以获取当前窗口的信息

    mySoul
  • jq 判断是否为空,为空隐藏指定 div

    Savalone
  • requireJS

    requireJS(http://www.requirejs.cn/)是一个JavaScript模块加载器。它非常适合在浏览器中使用,使用RequireJS加...

    奋飛
  • 转管理,先要问自己的5个问题

    想要成为一名管理者,并不是做个决定这么简单,做管理需要一套完全不同的技能。好的架构师,好的技术专家,并不一定代表一个好的管理者。

    架构师之路
  • 如何使用java代码通过JDBC访问Sentry环境下的Hive

    温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproje...

    企鹅号小编
  • 使用jQuery Uploadify在ASP.NET 上传附件

    Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示。Uploadify官方网址:http://www.uploadify.com/,...

    张善友

扫码关注云+社区

领取腾讯云代金券