javascript没有'无法在web应用程序中工作

javascript doesn't work in web app

本文关键字:web 应用程序 工作 没有 javascript      更新时间:2023-09-26

我正在使用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.htmlmodele2.htmllocalstorage值被设置为1。代码在chrome上运行良好,但当我使用phonegap构建代码时,脚本不起作用。我甚至在</body>标记之前手动将脚本添加到fav.html的末尾,并重建应用程序,但它在手机上仍然不起作用?请帮帮我,这很重要。

我不完全确定,但我想到的一件事是,您没有等待设备就绪事件。这对于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);代码来存储localstorage值的密钥。在windows中,文件的完整地址为/modele1.html,因此此代码返回文件名,但在phonegap中,文件完整地址为/android_assets/www/modele1.html。所以很明显,我需要将代码更改为fileName = location.pathname.substring(19);,从而解决Vola问题:)