zoukankan      html  css  js  c++  java
  • 动态加载js文件是异步的

    动态加载js文件是异步的。

    今天调试一个错误,一个js方法各种调不到。

    原因是因为所调方法的js文件是动态加载进来的。

    <script type="text/javascript">
        if (browser.versions.ios) {
        var head= document.getElementsByTagName('head')[0];
        var script= document.createElement('script');
        script.type= 'text/javascript';
        script.src= 'js/plugin/updateapp/updateapp.js';
        head.appendChild(script);
    
        var script1 = document.createElement('script');
        script1.type= 'text/javascript';
        script1.src= 'js/plugin/scaner/barcodescanner.js';
        head.appendChild(script1);
      } else if (browser.versions.android) {
        var head= document.getElementsByTagName('head')[0];
        var script= document.createElement('script');
        script.type= 'text/javascript';
        script.src= 'js/plugin/scaner/BarcodeScannerPlugin.js';
        head.appendChild(script);
    
        var script1 = document.createElement('script');
        script1.type= 'text/javascript';
        script1.src= 'js/plugin/updateapp/updateAppPlugin.js';
        head.appendChild(script1);
      }
    </script>

    调了半天才发现问题所在,用setTimeout函数解决。

    setTimeout("BarcodeScanner.prototype.loadlibrary(function () {},function () {});", 1000);

    附上判断浏览器类型的js方法

    // 判断访问终端
    var browser = {
      versions:function(){
        var u = navigator.userAgent, app = navigator.appVersion;
        return {
          trident: u.indexOf('Trident') > -1, //IE内核
          presto: u.indexOf('Presto') > -1, //opera内核
          webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
          gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,//火狐内核
          mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
          ios: !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
          android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端
          iPhone: u.indexOf('iPhone') > -1 , //是否为iPhone或者QQHD浏览器
          iPad: u.indexOf('iPad') > -1, //是否iPad
          webApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部
          weixin: u.indexOf('MicroMessenger') > -1, //是否微信 (2015-01-22新增)
          qq: u.match(/sQQ/i) == " qq" //是否QQ
        };
      }(),
      language:(navigator.browserLanguage || navigator.language).toLowerCase()
    };
  • 相关阅读:
    Java Native Method
    SQL语句优化
    Ibatis的环境搭建以及遇到的问题解决
    Java 构建器
    SpringMVC自定义视图 Excel视图和PDF视图
    java 枚举的常见使用方法
    mysql 根据某些字段之和排序
    MFC The Screen Flickers When The Image Zoomed
    How To Debug Qmake Pro File
    Gcc And MakeFile Level1
  • 原文地址:https://www.cnblogs.com/floud/p/7229290.html
Copyright © 2011-2022 走看看