2015-02-08 40 views
0

我正在开发一个使用phonegap的android应用程序。我在我的应用程序中创建了一个最喜欢的部分,我使用localstorage将文件名的值设置为1。然后,我创建了一个名为fav.html页,我就按照列表的display值设置为none这样的:javascript在web应用程序中不起作用

<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代码这样的改变 displayblock

<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>

我已经检查和localstorage值为modele1.htmlmodele2.html设置为1。该代码在Chrome上正常工作,但是当我用phonegap构建代码时,该脚本不起作用。我甚至在</body>标记之前手动将脚本添加到我的末尾fav.html并重建应用,但它仍然无法在手机上使用?请帮助我,这很重要。

回答

0

最后我终于找到了问题。我使用fileName = location.pathname.substring(1);代码来存储本地存储值的密钥。在Windows中文件的完整地址是/modele1.html,所以此代码返回文件名,但在phonegap文件的完整地址是/android_assets/www/modele1.html。所以显然我需要更改代码fileName = location.pathname.substring(19);和沃拉问题解决:)

+0

请将此标记为[接受的答案](http://stackoverflow.com/help/accepted-answer),以备将来参考。 – 2015-02-09 08:25:27

0

我不完全确定,但有一件事发生在我身上的是,您并未等待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> 

如果仍无法正常工作,您预期,您可以取消警报,看是否执行到达那里。

+0

感谢您的回答。我尝试了代码,但仍然无法正常工作。只能达到设备就绪警报 – hadi 2015-02-08 22:25:01

相关问题