2013-07-15 374 views
0

我已經創建了一個web應用程序使用查詢手機和html5,目前,我的JS沒有在應用程序中執行。Javascripts不會執行在Android的webview

在Android WebView上啓用了JS,因爲Jquery mobile可以爲庫執行JS,但不適用於Android設備。

它適用於iOS模擬器和Web瀏覽器,所以我想知道是否有某種隱藏的設置/實現我需要爲Android處理?

這裏是我從onClick事件收到正在使用手機的差距

07-15 09:25:00.621: E/Web Console(2992): Uncaught ReferenceError: uploadTrue is not defined at file:///android_asset/www/itemDetailCarHire.html:2 

這裏是itemDetailCarHire的HTML啓動了執行的onClick對話框輸出的一個簡單的對話框的HTML錯誤。

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<meta name="viewport" content="width=device-width,initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 
<title></title> 
<link href="src/jquery.mobile-1.3.1.min.css" rel="stylesheet" type="text/css"/> 
<link rel="stylesheet" href="src/jquery.mobile.iscrollview.css" /> 
<link rel="stylesheet" href="src/jquery.mobile.iscrollview-pull.css" /> 
<script src="src/jquery-1.9.1.min.js" type="text/javascript"></script> 
<script src="src/jquery.mobile-1.3.1.min.js" type="text/javascript"></script> 

<script src="src/iscroll.js"></script> 
<script src="src/jquery.mobile.iscrollview.js"></script> 
<script src="src/script/itemDetailCarHire.js"></script> 

    <link rel="stylesheet" href="src/jquery.ui.datepicker.mobile.css" /> 
    <script src="src/jquery.ui.datepicker.js"></script> 
    <script src="src/jquery.ui.datepicker.mobile.js"></script> 


</head> 

<body> 
<div data-role="page" id="fields"> 
    <div data-role="header" data-position="fixed" data-theme="b" data-tap-toggle="false" data-transition="none" > <a href="" onclick="history.back(-1); return false;">Back</a> 
    <h1>New Claim</h1> 
    </div> 
    <div data-role="content"> 
    <ul class="ui-li" data-role="listview" id="claimProfileListView" data-inset="true" data-scroll="true"> 

     <h3>Original Receipt:</h3> 
     <div data-role="fieldcontain"> <a href="uploadRecieptDialog.html" data-role="button" data-rel="dialog">Upload Reciept</a> </div> 
     </li> 

    </ul> 
    <div data-role="navbar"> 
     <ul> 
     <li><a href="claimItemSummary.html" data-theme="b">Save Claim Item</a></li> 
     </ul> 
    </div> 
    </div> 
</div> 
</body> 
</html> 

當用戶點擊原始收據部件,它將正確顯示稱爲uploadRecieptDialog.html和用於該代碼的對話框低於:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<meta name="viewport" content="width=device-width,initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 
<title></title> 
<link href="src/jquery.mobile-1.3.1.min.css" rel="stylesheet" type="text/css"/> 
<link rel="stylesheet" href="src/jquery.mobile.iscrollview.css" /> 
<link rel="stylesheet" href="src/jquery.mobile.iscrollview-pull.css" /> 
<script src="src/jquery-1.9.1.min.js" type="text/javascript"></script> 
<script src="src/jquery.mobile-1.3.1.min.js" type="text/javascript"></script> 
<script src="src/iscroll.js"></script> 
<script src="src/jquery.mobile.iscrollview.js"></script> 


</head> 
<body> 
<div data-role="page" id="page"> 

<div data-role="header" data-theme="b" data-position="fixed" > 

     <h1>Upload Reciept</h1> 

    </div> 
    <div data-role="content"> 
    <p>Click the button below to select and upload your Reciept</p> 
    <h3><a onclick="uploadTrue();" data-role="button" data-theme="c" >upload Reciept</a></h3> 

    <div data-role="footer" data-position="fixed" data-theme="b" > 

    </div> 
    </div> 
</div> 
</body> 
</html> 

這裏是updateDetailCarHire.JS

function uploadTrue(){ 
     alert("upload true"); 

     //load previous page 
     history.back(-1); return false; 
     alert("UPLOADED"); 

    } 

一個簡單的JS,你可以看到顯示一條警告消息並返回到前一個屏幕。在iOS模擬器和Chrome/Safari桌面網頁瀏覽器上,它的工作原理!

回答

0

我猜你的Javascript沒有執行,因爲科爾多瓦有你的歷史命令有問題。

入住這裏:in Cordova 1.8.1 - Android history.back() not working

,並可能:Why is javascript:history.go(-1); not working on mobile devices?

嘗試使用history.back();

編輯:我沒有看到被包括在任何這些HTML頁面的updateDetailCarHire.JS。

+0

它包含在itemDetailCarHire中。檢查我發佈的代碼片段的標題。我會嘗試history.back(); – jonney

+0

你好嗎? itemDetailCarHire.js中的document.write?嘗試將該功能直接放在問題頁面上,看看它是否有效。如果是這樣,它沒有正確包括它。 – ethree

相關問題