重定向到Cordova应用程序中的另一个页面后无法运行javascript

时间:2019-02-11 11:31:27

标签: javascript html cordova ratchet

我有一个困扰我好几天的问题。 简而言之,我有index.html页面,该页面在应用启动时首先为用户显示一个登录页面。在其中加载我的文件scripts.js,其中包含所有页面的功能(包括signup.html),但是问题是有一个showTab()函数必须在用户想要创建帐户并重定向到时运行。 signup.html页面 我这样做是这样的:

<a class="text-info font-weight-bold h5 text-underline"  href="signup.html" data-transition="slide-in"><U>Create
one now!</U></a> 

因此您可以看到问题出在哪里,当应用程序实际加载scrips.js时已加载,应在signup.html上运行的showTab()函数在索引页面上一次传递,而当用户尝试进行注册时带有href和data-transition =“ slide-in”的.html,不会完全加载scripts.js以重新运行函数showTab(),该函数是scripts.js的第一行 解决此问题的一种方法是将data-transition =“ slide-in”更改为data-ignore =“ push”,这实际上导致signup.html重新加载,但丢失了过渡。 我最终使用Ratchet框架和Cordova来构建应用程序。 我还尝试在signup.html

中添加onload =“ showTab()”
<div class="content bg-primary" onload="showTab()>

再次不会重新加载JS。

1 个答案:

答案 0 :(得分:0)

您不应该尝试使用Cordova在页面之间进行导航。

这是Best Practices Cordova app development中的第一项:

  

首先-您的Cordova应用程序应采用SPA   (单页应用程序)设计。松散定义,SPA是   从一个网页请求运行的客户端应用程序。   用户加载一组初始资源(HTML,CSS和JavaScript)   并通过以下方式进行进一步的更新(显示新视图,加载数据)   AJAX。 SPA通常用于更复杂的客户端   应用程序。 GMail就是一个很好的例子。加载GMail后,   邮件视图,编辑和组织都是通过更新DOM完成的   而不是实际离开当前页面以加载全新的页面   一个。

对此特别注意:

  

即使您选择不使用Cordova,也会创建一个移动应用程序   如果不使用单页架构,则会产生严重的性能   含义。这是因为在页面之间导航将需要   脚本,资产等要重新加载。即使这些资产是   缓存,仍然会有性能问题。