0

Мы хотели бы сообщить о некоторых проблемах, с которыми мы сталкиваемся, разрабатывая приложение Cordova с Community Community Community 2013, добавляя новые строки кода в файле index.html во время выполнения в Windows Phone 8.1. Кажется, что только теги HTML правильно читаются и исполняются, вместо этого JS (включен в тег или непосредственно в тег элемента, например, с использованием события onclick) не выполняется. Мы запускали тот же проект как на эмуляторе Android, так и на физическом устройстве, и он работал отлично. Кто-нибудь знает, что это проблема совместимости или что-то еще? Спасибо за внимание и помощь.Apache Cordova: выпуск update.html во время выполнения

Код:

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 команды.

ответ

0

Это похоже на проблему JQuery, где она не полностью загружена, прежде чем она будет использоваться.

Я всегда проверяю, что DOM готова для использования

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

, а затем проверить, если устройство будет готово, как вы сделали.

Смежные вопросы