javascript 在网络应用程序中不起作用
javascript doesn't work in web app
我正在使用 phonegap 开发一个 android 应用程序。我在我的应用程序上创建了一个最喜欢的部分,我使用 localstorage
将文件名的值设置为 1 。然后我创建了一个名为 fav.html 的页面,并将列表的 display
值设置为 none
,如下所示:
<ul class="table-view">
<li class="table-view-cell" style="display: none;">
<a class="navigate-left padder" href="modele1.html" data-transition="slide-in" >item1</a>
</li>
<li class="table-view-cell" style="display: none;">
<a class="navigate-left padder" href="modele2.html" data-transition="slide-in" >item2</a>
</li>
</ul>
比我使用这样的 javascript 代码将 display
值更改为 block
<script>
if (localStorage.getItem("modele1.html")==1){document.getElementsByClassName("table-view-cell")[0].style.display = 'block';}
if (localStorage.getItem("modele2.html")==1){document.getElementsByClassName("table-view-cell")[1].style.display = 'block';}
</script>
我已经检查过 modele1.html
和 modele2.html
的 localstorage
值设置为 1
。该代码在 chrome 上运行良好,但是当我使用 phonegap 构建代码时,脚本不起作用。我什至在 </body>
标记之前手动将脚本添加到 fav.html
的末尾并重建应用程序,但它仍然无法在 phone 上运行?请帮助我这很重要。
我不太确定,但我想到的一件事是您没有在等待 deviceready 事件。这对于 Cordova 可能是必需的,但对于 Chrome 则不需要,因为 Cordova 需要在启动期间加载实现并且 Chrome 已经有它可用。试试这个
<script>
document.addEventListener("deviceready", function () {
// alert("deviceready event");
if (localStorage.getItem("modele1.html")==1) {
// alert("1");
document.getElementsByClassName("table-view-cell")[0].style.display = 'block';
}
if (localStorage.getItem("modele2.html")==1){
// alert("2");
document.getElementsByClassName("table-view-cell")[1].style.display = 'block';
}
}, false);
</script>
如果仍然没有按预期运行,您可以取消注释警报以查看执行是否到达那里。
好吧,我终于找到问题了。我使用 fileName = location.pathname.substring(1);
代码来存储本地存储值的键。在 windows 中文件的完整地址是 /modele1.html
所以这个代码 return 文件名但是在 phonegap 中文件的完整地址是 /android_assets/www/modele1.html
。所以显然我需要将代码更改为 fileName = location.pathname.substring(19);
并且 Vola 问题已解决 :)
我正在使用 phonegap 开发一个 android 应用程序。我在我的应用程序上创建了一个最喜欢的部分,我使用 localstorage
将文件名的值设置为 1 。然后我创建了一个名为 fav.html 的页面,并将列表的 display
值设置为 none
,如下所示:
<ul class="table-view">
<li class="table-view-cell" style="display: none;">
<a class="navigate-left padder" href="modele1.html" data-transition="slide-in" >item1</a>
</li>
<li class="table-view-cell" style="display: none;">
<a class="navigate-left padder" href="modele2.html" data-transition="slide-in" >item2</a>
</li>
</ul>
display
值更改为 block
<script>
if (localStorage.getItem("modele1.html")==1){document.getElementsByClassName("table-view-cell")[0].style.display = 'block';}
if (localStorage.getItem("modele2.html")==1){document.getElementsByClassName("table-view-cell")[1].style.display = 'block';}
</script>
我已经检查过 modele1.html
和 modele2.html
的 localstorage
值设置为 1
。该代码在 chrome 上运行良好,但是当我使用 phonegap 构建代码时,脚本不起作用。我什至在 </body>
标记之前手动将脚本添加到 fav.html
的末尾并重建应用程序,但它仍然无法在 phone 上运行?请帮助我这很重要。
我不太确定,但我想到的一件事是您没有在等待 deviceready 事件。这对于 Cordova 可能是必需的,但对于 Chrome 则不需要,因为 Cordova 需要在启动期间加载实现并且 Chrome 已经有它可用。试试这个
<script>
document.addEventListener("deviceready", function () {
// alert("deviceready event");
if (localStorage.getItem("modele1.html")==1) {
// alert("1");
document.getElementsByClassName("table-view-cell")[0].style.display = 'block';
}
if (localStorage.getItem("modele2.html")==1){
// alert("2");
document.getElementsByClassName("table-view-cell")[1].style.display = 'block';
}
}, false);
</script>
如果仍然没有按预期运行,您可以取消注释警报以查看执行是否到达那里。
好吧,我终于找到问题了。我使用 fileName = location.pathname.substring(1);
代码来存储本地存储值的键。在 windows 中文件的完整地址是 /modele1.html
所以这个代码 return 文件名但是在 phonegap 中文件的完整地址是 /android_assets/www/modele1.html
。所以显然我需要将代码更改为 fileName = location.pathname.substring(19);
并且 Vola 问题已解决 :)