【问题标题】:Phonegap: My Javascript code works on browsers but it doesn't work on Android emulator or devicePhonegap:我的 Javascript 代码适用于浏览器,但不适用于 Android 模拟器或设备
【发布时间】:2013-11-07 15:40:27
【问题描述】:

我正在尝试使用 phonegap 和 JQuery Mobile 制作一个 Android 应用程序。

我有一个显示值的 div。每当我通过从标签值中添加或减去 div 的值来单击复选框时,该值就会更改

这是我在 Android 设备上安装的索引文件。

<head>
 <script>
  function inputData(idVar)
 {
 var myId;
 myId = document.getElementById(idVar).getAttribute("value");
 var myTag = document.getElementById(idVar);

 var mymyTag = myTag.querySelectorAll(".ui-btn-text");
 var myData = mymyTag[0].innerHTML;
 var myDataParsed = parseInt(myData);
if (document.getElementById(myId).checked==false)
 {
 myDataPrased =  myDataParsed+parseInt(document.getElementById("input_label").innerHTML);
 document.getElementById("input_label").innerHTML=myDataPrased;
 }
 else
 {
 var myResult
 var myOldData = parseInt(document.getElementById("input_label").innerHTML);
 myResult = myOldData-myDataParsed;
 document.getElementById("input_label").innerHTML=myResult;  
 }
 }

  </script>
  </head>

<body>
<div data-role="page" id="input">
<div data-role="header"></div>
  <div data-role="content">

    <div data-role='fieldcontain' align="center">
    <fieldset data-role='controlgroup' id="in">
    </fieldset>
    </div>
    <div id="input_label">0</div>
     <a href="#data" data-role="button" data-inline="true">Back</a>
</div>
<div data-role="footer" data-position="fixed">
    <h4>Page Footer</h4>
</div>

复选框是从 php 页面生成的。并插入

 <fieldset data-role='controlgroup' id="in">

当我点击标签时调用函数“inputData”(在 JQuery Mobile 中,标签标签似乎覆盖了 CheckBox,所以当我认为我点击复选框时,我实际上是点击标签然后它将生成一个触发 Checkbox 的事件)

该函数将接收标签的 ID。然后使用它,我通过从标签标签的“值”属性中提取它来获取 CheckBox 的 ID,这样我就可以使用它来检查 CheckBox 是否被选中。

此代码可以在 FireFox 等 Web 浏览器上完美运行。但是当我使用 Eclipse 在 Android 设备上安装它时它不会运行它。无论我如何单击复选框。 div 的值不会改变。

【问题讨论】:

  • “复选框是从 php 页面生成的”是什么意思?这是一个 .php 页面吗?
  • 这是一个 Index.Html 文件。生成复选框的不是 php 文件。我使用 jquery $post 方法连接到服务器并在重新加载页面时加载这些复选框。我使用 Ajax 的原因是因为我需要与复选框一起加载数据。另外,我有不同的场景。所以复选框的数量会根据每个而有所不同

标签: javascript android jquery-mobile checkbox cordova


【解决方案1】:

我能够通过转身解决我的问题。而不是检查复选框上的 onclick 事件并更改值。我制作了一个名为“计算”的按钮,它迭代所有复选框并计算选中的复选框的值。然后通过该按钮上的 onclick 事件编辑最终值。

非常感谢大家帮助我,我很感激。

【讨论】:

    【解决方案2】:

    记得加载cordava文件:&lt;script type="text/javascript" src="cordova.js"&gt;&lt;/script&gt;

    【讨论】:

    • 仍然没有运气我实际上无法理解的是我的项目上有很多按钮。只需添加“onclick”属性,它们都可以在浏览器和 Android 设备上运行。我只有 JQuery Mobile Checkboxes 有这个问题。标签上的“onclick”事件似乎不起作用。我不知道为什么。当涉及到 JQM 复选框时,它仅适用于 Chrome 或 FireFox 等浏览器。但不是在 Android 设备上。
    • Android 浏览器很糟糕,就像 IE6。可能发生的事情是它不支持标签上的onClick,或者它不支持myTag.querySelectorAll(".ui-btn-text");
    • 我对“Android 浏览器”感到困惑。你是指Android上运行的chrome和firefox等浏览器还是android上运行phonegap的层?
    【解决方案3】:

    查看您的 config.xml 文件。有没有这样的线

    <access origin="http://127.0.0.1*" />
    

    并且执行复选框技巧的 php 脚本不在 127.0.0.1 处? 然后将该行更改为

    <access origin="*" />
    

    访问您的 php 文件所在的远程主机。

    lg

    快速

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多