Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery JQM多页应用程序,具有一个中心JS和打开PDF(文档…)问题_Jquery_Jquery Mobile - Fatal编程技术网

Jquery JQM多页应用程序,具有一个中心JS和打开PDF(文档…)问题

Jquery JQM多页应用程序,具有一个中心JS和打开PDF(文档…)问题,jquery,jquery-mobile,Jquery,Jquery Mobile,我的应用程序结构如下: index.html/app。入口点在…中包括一个中心JS,我在其中根据打开的页面和触发的事件进行自定义脚本编写: 下面是一个名为mylist.html的页面的快速示例,我没有在每个页面上都使用它的脚本,而是使用一个更大的JS,只需要一次就可以加载到索引的: $(document).on('pageinit', '#pageMyList', function() { // init code }); $(document).on('pag

我的应用程序结构如下:

index.html/app。入口点在
中包括一个中心JS,我在其中根据打开的页面和触发的事件进行自定义脚本编写: 下面是一个名为mylist.html的页面的快速示例,我没有在每个页面上都使用它的脚本,而是使用一个更大的JS,只需要一次就可以加载到索引的

$(document).on('pageinit', '#pageMyList', function()        
{
     // init code   
});

$(document).on('pageshow', '#pageMyList', function()
{   
    // run every time
});     
关闭jqmajax和其他东西不是一个选项,因为我需要这些转换并将JQM转换为“本机”

问题:

我有一个由浏览器处理的pdf、文档、外部链接等的列表。例如:打开pdf我只是链接到它(window.location='pathToPdfFile'

这是可行的,但是pdf阅读器打开了(iphone等)。现在返回将打开最后一个页面,但是index.html页面不再在DOM中,我的整个JS也不可用

顺便说一句:页面是通过ajax动态构建的。
当我刷新任何页面(index.html)时,都会发生同样的情况

您可以明确地告诉JQM要将哪些页面加载到DOM中(在页面底部),但要小心,因为如果将太多页面加载到DOM中,您将遇到设备特定的内存问题

要缓存特定页面,可以将数据dom cache=“true”属性添加到页面的容器中(例如
index.html
page):


或者,您可以创建一个HTML5缓存清单文件,该文件将存储您在缓存中指定的所有文件,应用程序甚至可以在脱机时工作。这种方法有缺点,但这取决于您希望应用程序如何运行。以下是HTML5缓存清单上的文档和操作方法:

您能解释一下您真正想要的是什么吗ng要发生/完成?你只是想让JS文件留在缓存中?在DOM中?还是…?嗯,我忘了提到,但当我打开指向文件(pdf)的链接时,浏览器就像一个读卡器一样正确地打开pdf。所以现在我只有“浏览器后退”按钮返回到我的应用程序。最后一页打开了,但第一页打开了(index.html)从DOM中丢失。由于index.html包含了我的自定义脚本JS文件,我刚从该PDF返回时得到一个空白页(DOC、XLS、外部链接、浏览器刷新按钮)…问题是:JQM开发人员如何处理此问题?(我以为index.html默认启用了DOM缓存)请看我的答案……如果你需要的话,请告诉我
<div data-role="page" data-dom-cache="true">
$.mobile.page.prototype.options.domCache = true;