Google脚本在上传到Google脚本HTML时未显示jQuery布局

时间:2014-07-08 04:58:06

标签: javascript jquery html google-apps-script

在我的html编辑器上,这段代码可以正常工作,但是当我使用我的Code.gs上传它时,用于谷歌脚本。

function doGet() {
 return HtmlService.createHtmlOutputFromFile('hh');
 }

它应该显示与我在html编辑器中相同的布局,但它看起来不同。你可以在这里看到它:

https://script.google.com/macros/s/AKfycbwM0y5y3kkgWAoPb99hXwdJKTpvt3hvXwWLHvzehbcw/dev

<title>jQuery Mobile</title>
    <meta name="viewport" content="width=device-width">
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>

    </script>
    <body>
       <!-- label text -->
       <div data-role="page">
          <div data-role="header" data-theme="a">
             <h1>Example</h1>
             <form id="form" name="form">
          </div>
          <div style="width:auto; margin:20px;padding-top:30px;">
          <label for="howMuch_1">How much?</label>
          <input id ="howMuch_1" type="range" min="1" max="100" value="1">
          <label for="howMany_1">How many tickets?</label>
          <input id ="howMany_1" type="range" min="1" max="50" value="1">
          <label for="lastNumber_1">Last number?</label>
          <input id ="lastNumber_1" type="range" max="700" min="1" value="1">
          <button id="add" ></button>
          </div>
          </form>
       </div>
</body>

2 个答案:

答案 0 :(得分:1)

我猜测CAJA已经清理并删除了jQuery Mobile的一些功能。但这只是猜测。尝试使用:

  return HtmlService.createTemplateFromFile('hh')
    .evaluate() // evaluate MUST come before setting the NATIVE mode
    .setTitle('Title of your app')
    .setSandboxMode(HtmlService.SandboxMode.NATIVE);

将沙箱模式设置为NATIVE可能有所帮助,但我无法保证。

参考文献:

Google Caja

引用:

  

保护用户免受恶意HTML或JavaScript,Apps的侵害   脚本依赖于Caja编译器进行清理和沙箱   适用于Google文档的HTML服务网络应用或自定义用户界面,   表格和表格。

Apps Script HTML Service Restrictions

答案 1 :(得分:1)

您可以通过将其粘贴到caja游乐场来查看caja对您的代码的看法,您可以在http://caja.appspot.com/

找到它

我尝试了你的源代码,发现了这个错误

  

未捕获的脚本错误:&#39; TypeError:无法在&#39;中使用&#39;运营商搜索   对于&#39; pushState&#39;在undefined&#39;来源:   &#39; http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js&#39;在   line:1

此处还有关于jquerymobile兼容性的现有应用脚本问题 - 我建议您加注星标并关注

https://code.google.com/p/google-apps-script-issues/issues/detail?id=1665&can=1&q=jquery&colspec=Stars%20Opened%20ID%20Type%20Status%20Summary%20Component%20Owner