【问题标题】:Javascripts wont execute in Android webviewJavascript不会在Android webview中执行
【发布时间】:2013-07-15 08:39:05
【问题描述】:

我已经使用查询移动和 html5 创建了一个 Web 应用程序,目前,我的 JS 都没有在应用程序中执行。

JS 在 Android WebView 上启用,因为 Jquery mobile 可以执行库的 JS,但不能在 android 设备上运行。

它在 iOS 模拟器和网络浏览器上运行良好,所以我想知道我是否需要为 android 处理某种隐藏的设置/实现?

这是我从使用电话间隙输出的简单对话框 html 上的 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

这是启动执行 onClick 的对话框的 itemDetailCarHire 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 桌面网络浏览器上,它可以工作!

【问题讨论】:

    标签: android html jquery-mobile cordova


    【解决方案1】:

    我猜你的 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。

    【讨论】:

    • 它包含在 itemDetailCarHire 中。检查我发布的代码 sn-p 的标题。我会尝试 history.back();
    • 你是如何包含它的? document.write 在 itemDetailCarHire.js 内?尝试将该功能直接放在有问题的页面上,看看它是否有效。如果是这样,它没有正确包含它。
    猜你喜欢
    • 2015-04-19
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多