今天的问题是 js 报错,需要 js 玩得 6 大佬来看看了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
xssp
V2EX    程序员

今天的问题是 js 报错,需要 js 玩得 6 大佬来看看了

  •  
  •   xssp 2019-06-10 15:30:27 +08:00 2764 次点击
    这是一个创建于 2395 天前的主题,其中的信息可能已经有所发展或是发生改变。

    找了朋友看了下代码,最后给我一句,需要 js 6 的人才会修复 解决,又说,可能是写法的问题

    也可能是忽悠我的,因为我也不懂,大佬们看下情况

    事情起因是,偶尔访问网页,会出现空白的,刷新下又正常了,经过反复测试,首次访问,会出现空白。

    也就是从来没有访问过这个网页的就会空白,第二次访问又正常了。

    wx 开发者工具测试很多次 偶尔情况会出现这类报错。如下

    xssp
        1
    xssp  
    OP
       2019-06-10 15:47:47 +08:00
    那位大哥,帮忙看下吧,小老弟在线等
    xmflswood
        2
    xmflswood  
       2019-06-10 15:49:20 +08:00
    能贴个网站的在线地址吗?
    下面那俩地址 我这里打不开
    Chemist
        3
    Chemist  
       2019-06-10 15:50:33 +08:00
    mara1
        4
    mara1  
       2019-06-10 15:51:28 +08:00
    先定位问题,log 说那个函数不存在,你挨个打印一下,先打 config,有东西就继续 config.tpl ,查出来是那一层出问题了再说
    fe619742721
        5
    fe619742721  
       2019-06-10 15:53:08 +08:00
    无责任猜测资源 js 加载异步
    Chemist
        6
    Chemist  
       2019-06-10 15:53:25 +08:00
    看看是啥修改了 `config.tpl.body.jstpl_format` 这个玩意儿,或者一层一层找上去,`config.tpl.body` `config.tpl` 被修改都可能是造成这个问题的原因。
    lzvezr
        7
    lzvezr  
       2019-06-10 15:55:39 +08:00 via iPhone
    可能是异步加载的问题,第一次没有缓存,异步加载出错,第二次直接使用缓存,所以就不报错了
    lzvezr
        8
    lzvezr  
       2019-06-10 15:57:58 +08:00 via iPhone
    @lzvezr 可以试着给 script 标签加 defer 属性,记得排好顺序
    shintendo
        9
    shintendo  
       2019-06-10 15:59:06 +08:00
    d2.js 第 307 行调用了 config.tpl.body.jstpl_format, 根据第 42 行 config 对象的定义,config.tpl.body 是一个字符串,字符串是没有 jstpl_format 方法的,因此报错。
    而 core2.js 里面,第 324 行给 String 原型添加了 jstpl_format 这个方法,此后所有的字符串都有了 jstpl_format 方法。
    所以关键在于这两段代码何者先执行,先执行第二个则不报错,先执行第一个则报错。
    onecode
        10
    onecode  
       2019-06-10 15:59:35 +08:00
    我估计是你调用的这个方法是再调用之后才加载出来
    shintendo
        11
    shintendo  
       2019-06-10 16:02:15 +08:00
    d2.js 里面这段代码是 dom ready 的时候执行,core2.js 这段代码是立即执行函数,可能由于网络 /缓存等因素,造成执行顺序的不确定性。
    最好贴一下这两个 js 是怎么引入的。
    xssp
        12
    xssp  
    OP
       2019-06-10 16:44:28 +08:00
    @shintendo 这是引入方式 大哥,帮忙看下,<img src="https://ceback.oss-cn-hongkong.aliyuncs.com/1.png">
    xrr2016
        13
    xrr2016  
       2019-06-10 16:58:04 +08:00
    目测是代码库加载顺序问题,执行报错代码时,所用到的库还没加载完毕?
    shintendo
        14
    shintendo  
       2019-06-10 16:58:35 +08:00
    @xssp 这个 loadJS 是什么,微信提供的 api ?还是用了什么库?
    xssp
        15
    xssp  
    OP
       2019-06-10 17:02:06 +08:00
    @shintendo https://xdfilett.oss-cn-shanghai.aliyuncs.com/hb/yqw1000098k.js 这是 js 文件,我用的别人的,不是自己写的
    shintendo
        16
    shintendo  
       2019-06-10 17:27:52 +08:00
    @xssp 问题就在这个文件,它写的引入方式是有问题的,会导致两个 js 的执行顺序不确定。
    如果你可以改这个文件的话,在 s.setAttribute('src', src);这行后面插一行 s.setAttribute('async', false);
    如果你不能改这个文件,那就比较麻烦了。
    xssp
        17
    xssp  
    OP
       2019-06-10 17:29:55 +08:00
    @shintendo 能改 我马上改了 ,谢谢了大哥 。测试完 后 我在给你回复最新情况
    xssp
        18
    xssp  
    OP
       2019-06-10 17:31:36 +08:00
    @shintendo 加了 大哥 还是报之前的那个错误
    xssp
        19
    xssp  
    OP
       2019-06-10 17:32:11 +08:00
    @shintendo 方便提供个联系方式吗 大哥,感谢了
    xssp
        20
    xssp  
    OP
       2019-06-10 17:45:54 +08:00
    @shintendo 这是出错提示 ,跟之前那个一样 https://xdfilett.oss-cn-shanghai.aliyuncs.com/hb/2.png
    whypool
        21
    whypool  
       2019-06-10 17:48:11 +08:00
    要么 js 加载顺序问题,引用的对象没出来
    要么异步操作问题,数据未定义
    xssp
        22
    xssp  
    OP
       2019-06-10 20:12:08 +08:00
    @whypool 大哥 能帮忙看看吗?
    xssp
        23
    xssp  
    OP
       2019-06-10 20:12:22 +08:00
    @xrr2016 大哥 能帮忙看看吗?
    xssp
        24
    xssp  
    OP
       2019-06-10 20:16:16 +08:00
    @lzvezr 大哥 能帮忙看看代码吗?
    shintendo
        25
    shintendo  
       2019-06-10 21:10:56 +08:00   1
    @xssp
    查了一下好像不能那么设,把我说的那句改成 s.async = false; 试试
    xssp
        26
    xssp  
    OP
       2019-06-10 21:31:41 +08:00
    @shintendo 感谢老哥,辛苦了,谢谢。刚测测试 目前没有出现那个报错了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1104 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 18:00 PVG 02:00 LAX 10:00 JFK 13:00
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86