2013-07-15 3 views
0

Я создал веб-приложение с использованием запроса mobile и html5, и в настоящее время ни один из моих JS не выполняется в приложении.Javascripts не исполняются в Android-браузере Android

JS включен в Android WebView, поскольку JQuery mobile может выполнять JS для библиотеки, но не работает на устройстве Android.

Он отлично работает на симуляторе iOS и в веб-браузере, поэтому мне интересно, есть ли какие-то скрытые настройки/реализация, которые мне нужно обрабатывать для Android?

здесь ошибка я получаю от события OnClick на простом диалоговом окне HTML, который выведенного с помощью телефона разрыв

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

Вот HTML-itemDetailCarHire, который запускает диалог, который выполняет OnClick.

<!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();

EDIT: Я не вижу updateDetailCarHire.JS быть включены в любой из этих HTML-страниц.

+0

Включенный в комплектПодать заявкуКарта. проверьте заголовки фрагмента кода, который я опубликовал. я попробую history.back(); – jonney

+0

Как вы его включаете? document.write внутри itemDetailCarHire.js? Попробуйте поместить эту функцию непосредственно на страницу с проблемой и посмотреть, работает ли она. Если это так, оно не включает его должным образом. – ethree