Apache Cordova:在运行时发布更新index.html

时间:2015-01-02 19:59:02

标签: javascript html cordova windows-phone-8.1 visual-studio-cordova

我们想报告一些问题,我们正在开发使用Visual Studio社区2013开发Cordova应用程序的问题在Windows Phone 8.1中在运行时在index.html文件中添加新的代码行。似乎只有HTML标签被正确读取和执行,而不是执行JS(包含在标签中或直接在元素标签中,例如使用onclick事件)。我们在Android模拟器和物理设备上运行了相同的项目,它运行得很好。有人知道它是兼容性问题还是其他什么问题?感谢您的关注和帮助。

代码是:

INDEX.HTML:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Tester</title>
    <link href="css/index.css" rel="stylesheet" />
</head>
<body>
    <input type="button" id="test" value="Prova x Emulatore wp" />
    <!-- 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.min.js"></script>
    <script id="last_script" src="scripts/index.js"></script>
</body>
</html>

INDEX.JS:

(function () {
    "use strict";


    document.addEventListener( 'deviceready', onDeviceReady.bind( this ), false );
    var logOb;
    function onDeviceReady() {
        navigator.notification.alert('ciao');
        // Handle the Cordova pause and resume events
        document.addEventListener( 'pause', onPause.bind( this ), false );
        document.addEventListener('resume', onResume.bind(this), false);
        document.getElementById('test').addEventListener('click', function () {
            var el1 = '<input type="button" id="Prova" value="Ciao"/>',
                el2 = '<script type="text/javascript">document.getElementById(\'Prova\').addEventListener(\'click\', function(){navigator.notification.alert(\'Ciao sono il bottone\')}, false);</script>';
            $('#test').after(el1);
            $('#last_script').after(el2);
        }, false);
        // TODO: Cordova has been loaded. Perform any initialization that requires Cordova here.
    };

    function onResume() { };

    function onPause() { };
} )();

TrialCode小组。

1 个答案:

答案 0 :(得分:0)

这看起来像一个JQuery问题,它在使用之前没有完全加载。

我总是检查DOM是否已准备好使用

$( document ).ready(......

然后检查设备是否已准备就绪。