可以在PC上运行但不能在移动设备上运行的html

Posted

技术标签:

【中文标题】可以在PC上运行但不能在移动设备上运行的html【英文标题】:html that work on PC but not work on mobile 【发布时间】:2018-03-04 02:05:57 【问题描述】:

我对 jquery 和 jquery mobile 完全陌生。如果以下问题让您感到难堪,我深表歉意。

最近,我尝试学习如何使用 json 和 jquery 编写页面以从 google sheet 获取数据。经过一番努力,我成功得到了预期的结果。

在此之后,我想更进一步,并尝试使其在移动设备上运行。 我知道 jquery mobile 是让它在移动设备上工作的界面,但我完全迷失在学习 jquery mobile 上。因此,我想向你们寻求帮助。谢谢!

<!DOCTYPE html>
<html>

<head>

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.css">




  <style>
  table,
    th,
    td 
      margin: 10px 0;
      border: solid 1px #333;
      padding: 2px 4px;
      font: 15px Verdana;
    
    
    th 
      font-weight: bold;
    
    
    //#loader 
    border: 16px solid #f3f3f3;
    border-radius: 50%;
    border-top: 16px solid blue;
    border-bottom: 16px solid blue;
    width: 30px;
    height: 30px;
    -webkit-animation: spin 2s linear infinite;
    animation: spin 2s linear infinite;
    visibility:hidden;
  
  @-webkit-keyframes spin 
    0% 
      -webkit-transform: rotate(0deg);
    
    
    100% 
      -webkit-transform: rotate(360deg);
    
  
  @keyframes spin 
    0% 
      transform: rotate(0deg);
    
    
    100% 
      transform: rotate(360deg);
    
  
  </style>
  <!--script src="cordova.js"></script>-->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.js"></script>


  <form>
    Select Predrill Hole Number:
    <select id="HoleList" onchange="Predrill()">
            <option>Pose 1</option>
            <option>Pose 2</option>
        </select>

    <name="name" id="name">


  </form>
  <br>

  <input type="button" onclick="update_value()" value="Update" />
  <input type="button" onclick="read_value()" value="Read" />

  <div id="showData"></div>
  </div>
  <a href="" id="photo1"><img id="pic" src="" >
    <a>


      <script>
        var script_url = "https://script.google.com/macros/s/AKfycbzHtuKZACiuwQmCc8PqrRAK-nWm61ZtaZpy1Rr7c1Bub1GeThA/exec";

        // Make an AJAX call to Google Script

        function update_value() 
          $("#re").css("visibility", "hidden");
          document.getElementById("loader").style.visibility = "visible";

          var id1 = $("#id").val();
          var name = $("#name").val();

          var url = script_url + "?callback=ctrlq&name=" + name + "&id=" + id1 + "&action=update";

          var request = jQuery.ajax(
            crossDomain: true,
            url: url,
            method: "GET",
            dataType: "jsonp"
          );
        

        // print the returned data
        function ctrlq(e) 
          $("#re").html(e.result);
          $("#re").css("visibility", "visible");
          read_value();
        

        function read_value() 
          $("#re").css("visibility", "hidden");
          document.getElementById("loader").style.visibility = "visible";
          var url = script_url + "?action=read";

          $.getJSON(url, function(json) 
            // Set the variables from the results array

            // CREATE DYNAMIC TABLE.
            var table = document.createElement("table");

            var header = table.createTHead();
            var row = header.insertRow(0);
            var cell1 = row.insertCell(0);
            var cell2 = row.insertCell(1);
            cell1.innerHTML = "<b>ID</b>";
            cell2.innerHTML = "<b>Name</b>";

            // ADD JSON DATA TO THE TABLE AS ROWS.
            for (var i = 0; i < json.records.length; i++) 

              tr = table.insertRow(-1);
              var tabCell = tr.insertCell(-1);
              tabCell.innerHTML = json.records[i].Heading;
              tabCell = tr.insertCell(-1);
              tabCell.innerHTML = json.records[i].Information;
            
            var myObj = json.records[0];
            document.getElementById("photo1").href = myObj.Photo1;
            document.getElementById("pic").src = myObj.Photo1;


            // FINALLY ADD THE NEWLY CREATED TABLE WITH JSON DATA TO A CONTAINER.
            var divContainer = document.getElementById("showData");
            divContainer.innerHTML = "";
            divContainer.appendChild(table);
            document.getElementById("loader").style.visibility = "hidden";
            $("#re").css("visibility", "visible");
          );
        


        function Predrill() 
          var HoleList = document.getElementById("HoleList");
          document.getElementById("name").value = HoleList.options[HoleList.selectedIndex].text;
        
      </script>
</head>

<body>
  <div id="loader"></div>

  <p id="re"></p>
</body>

<div align="center">
  <p> | All Rights Reserved</p>
</div>

【问题讨论】:

问题是什么?还有一点旁注:使用 jquery 时,您可以使用 $('#id') 而不是 document.getElementById('id') 我的问题是如何让它在移动设备上工作。谢谢! 首先您应该将&lt;form /&gt; 和其他可见元素移动到正文中,因为如果将它们放入头部可能会失败。 我建议阅读the documentation 并按照@floriangosse 所说的去做。 【参考方案1】:

首先,我对 jQuery mobile 不是很熟悉,但是我可以告诉你一些关于 HTML 文档的基础知识,也许你可以从那里开始:

您的 html 文档应如下所示:

<html>
<head>
   <<meta name="viewport" content="width=device-width, initial-scale=1">
   <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.css">
<link rel="stylesheet" href="styles.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.js"></script>


</head>
<body>

//Here will your html code be

</body>
</html>

将所有指向包含 jquery CDN- 链接的样式表和脚本标签的链接放在 head-tag 中。

我的建议是将 css 文件和 javascript 文件分开,而不是将所有内容都放在一个文档中,因为这样会变得非常非结构化和压倒性的。从一开始就保持你的代码干净,这样你以后就不必清理它,它会变得容易很多。

希望对您有所帮助! 拉蒙

PS:没有不好的问题,每个人都是从某个地方开始的,当我开始时我问自己同样的事情,所以继续谷歌搜索哈哈!祝你好运!

【讨论】:

以上是关于可以在PC上运行但不能在移动设备上运行的html的主要内容,如果未能解决你的问题,请参考以下文章

HTML5:移动设备上的 Div 背景大小随机错误

地理位置无法在移动设备上运行,但可以在我的桌面上运行

Firebase android 可以在模拟器上运行,但不能在设备上运行

为啥应用内购买方法可以在模拟器上完美运行,但不能在真实设备 iOS 6 上运行?

简单的移动jQuery下拉菜单无法在移动设备上运行

移动设备上糟糕的 Canvas GetImageData() / PutImageData() 性能