博客
关于我
jQuery Mobile页面跳转后未加载外部JS原因分析及解决
阅读量:274 次
发布时间:2019-03-01

本文共 917 字,大约阅读时间需要 3 分钟。

在使用jQuery Mobile开发Web应用时,页面跳转后外部JS未正常运行的问题确实是一个常见的挑战。以下是对该问题的分析及解决方案:

在jQuery Mobile中,页面跳转(pageA => pageB)时,仅将data-role="page"标签元素加载到当前页面中,而不会重新加载之前引入的外部JS文件或page标签外的JS代码。因此,head中引入的外部JS文件及page标签外的JS脚本在跳转后通常无法正常执行,除非页面被刷新。

解决方案

为了确保页面跳转后外部JS文件和page标签外的JS代码能够正常运行,可以采用以下两种方法:

  • 在index页面中注册所有需要使用的外部JS文件,或者使用母版页面来统一管理

    • 这种方法需要在主页面(index)中预先加载所有可能在子页面中使用的外部JS文件。
    • 例如,可以在index页面的head部分引入所有必要的外部JS文件,使其在页面初始化时被加载和解析。
    • 通过这种方式,可以确保即使页面跳转到其他页面,外部JS文件也已被正确加载和解析。
  • 将JS直接写在data-role="page"标签内

    • 这种方法直接将需要在每个页面中使用的JS代码嵌入到对应的data-role="page"标签中。
    • 这样,无论页面如何跳转,JS代码都会被加载和执行,因为它们已经被包含在当前页面的DOM中。
  • 示例

    A网页转跳到B网页,自动弹出正在加载的事件

    在A网页中添加一个超链接指向B网页:

    页眉文本

    页面一

    转到页面二

    页脚文本

    在B网页中添加一个显示加载器的JS脚本:

    页眉文本

    页面二

    页脚文本

    通过这种方法,页面跳转后,B网页中的JS脚本会被正确执行,自动弹出加载中的事件。

    转载地址:http://ydcx.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现max_heap最大堆算法(附完整源码)
    查看>>
    Objective-C实现MD5 (附完整源码)
    查看>>
    Objective-C实现md5算法(附完整源码)
    查看>>
    Objective-C实现MeanSquareError均方误差算法 (附完整源码)
    查看>>
    Objective-C实现memcmp函数功能(附完整源码)
    查看>>
    Objective-C实现memoization优化技术算法(附完整源码)
    查看>>
    Objective-C实现memset函数功能(附完整源码)
    查看>>
    Objective-C实现merge insertion sort合并插入排序算法(附完整源码)
    查看>>
    Objective-C实现merge sort归并排序算法(附完整源码)
    查看>>
    Objective-C实现mergesort归并排序算法(附完整源码)
    查看>>
    Objective-C实现miller rabin米勒-拉宾素性检验算法(附完整源码)
    查看>>
    Objective-C实现Miller-Rabin素性测试程序(附完整源码)
    查看>>
    Objective-C实现Miller-Rabin素性测试程序(附完整源码)
    查看>>
    Objective-C实现MinhashLSH算法(附完整源码)
    查看>>
    Objective-C实现MinhashLSH算法(附完整源码)
    查看>>
    Objective-C实现MinHeap最小堆算法(附完整源码)
    查看>>
    Objective-C实现minimum cut最小切割流算法(附完整源码)
    查看>>
    Objective-C实现minimum partition最小分区算法(附完整源码)
    查看>>
    Objective-C实现MSRCR算法(附完整源码)
    查看>>
    Objective-C实现multilayer perceptron classifier多层感知器分类器算法(附完整源码)
    查看>>