【问题标题】:Tools for Apache Cordova: JQueryMobile wraps input tags inside a head tag?Apache Cordova 的工具:JQueryMobile 将输入标签包装在头标签内?
【发布时间】:2015-01-09 17:33:03
【问题描述】:

Visual Studio 2013 Ultimate 更新 4,适用于 Apache Cordova CTP 3.0 的工具,适用于 Windows Phone 8.1

我正在寻找帮助/解决方法/魔术来处理以下问题:

从一个空白的 ApacheCordova 模板应用开始,它运行良好。
添加一个按钮输入——一切都还“很好”

然后包括 JQuery 和 JQuery.mobile,在模拟器或设备上运行时,<p><input> 都不会呈现。?.?.?.???

<body>
<p>Hello, your application is ready!</p>
<input type='button' value='' />

<!-- Cordova reference, this is added to your app when it's built. -->
<script src="cordova.js"></script>
<script src="scripts/platformOverrides.js"></script>

<script src="scripts/jquery-2.1.1.js"></script>
<script src="scripts/jquery.mobile-1.4.5.js"></script>
<script src="scripts/index.js"></script>
</body>  

查看 index.html 的 DOM Explorer,我们明白了原因:当 JQM 进行增强时,我们的 &lt;p&gt;&lt;input&gt; 已被包裹在 &lt;head&gt; 中。

<body class="ui-mobile-viewport ui-overlay-a">
    <head tabindex="0" class="ui-page ui-page-theme-a ui-page-active" style="min-height: 667px;" data-url="/www/index.html">
        <p>Hello, your application is ready!</p>
        <head><input type="button" value=""></head>

        <!-- Cordova reference, this is added to your app when it's built. -->
        <script src="cordova.js"></script>
        <script src="scripts/platformOverrides.js"></script><script src="scripts/winstore-jscompat.js"></script>

        <script src="scripts/jquery-2.1.1.js"></script>
        <script src="scripts/jquery.mobile-1.4.5.js"></script>
        <script src="scripts/index.js"></script>
    </head>

    <head class="ui-loader ui-corner-all ui-body-a ui-loader-default"></head>
    <body class="ui-loader ui-corner-all ui-body-a ui-loader-default"></body>
</body>

没有使用 JQuery Mobile,有人知道如何“阻止”这种情况发生吗?一旦输入标签被引入到标记中,JQM 就开始包装头标签。

【问题讨论】:

    标签: cordova jquery-mobile windows-phone visual-studio-cordova


    【解决方案1】:

    JQM 与 winstore-jscompat.js 不兼容。 所以可以注释掉&lt;script src="scripts/platformOverrides.js"&gt;&lt;/script&gt;或者修改winstore-jscompat。

    在winstore-jscompat.js中注释掉以下几行就足够了:

    /*
    cleansePropertySetter("innerHTML", function (propertyDescriptor, target, elements) {
      empty(target);
      for (var i = 0, len = elements.length; i < len; i++) {
        target.appendChild(elements[i]);
      }
    });
    */

    【讨论】:

    • 我正在使用 Jquery、Jquery Mobile 和 Knockut JS 开发 Cordova 应用程序。获取动态 HTML 注入错误。一旦我使用 winstore-jscompat.js 得到 WWAHost.exe win32 异常。你能告诉我如何在 Windows 8.1 科尔多瓦应用程序上将 winstore-jscompat.js 与 Jquery mobile 一起使用
    猜你喜欢
    • 2015-08-17
    • 2016-10-06
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 2013-05-22
    • 2012-09-07
    • 2021-09-27
    相关资源
    最近更新 更多