Creé una aplicación multipágina usando Worklight para plataformas Android, iOS y Windows Phone 8. En esa aplicación, tengo que incluir varios archivos js en algunas páginas, lo que está creando problemas en el entorno de Windows phone 8.

Problema: si incluyo varios archivos js, solo el primer archivo js se carga en el entorno Windows phone 8.

Creé una aplicación de muestra usando la aplicación de varias páginas Worklight para demostrar el problema.

En el Page1.html, incluí 2 archivos js.

<script>
    $.getScript(path + "js/Page1.js");
    $.getScript(path + "js/Sample.js");
</script>

<p>
    Currently <b>Page1.html</b> page is loaded.
</p>

<input type="button" class="appButton" value="Show Alert" onclick="alertHello();" />
<input type="button" class="appButton" value="SimpleDialog from Page1" onclick="currentPage.buttonClick();" />
<input type="button" class="appButton" value="Insert Fragment" onclick="currentPage.insertFragment();" />

<div id="FragmentsDiv"></div>

<input type="button" class="appButton" value="BACK" onclick="currentPage.back();" />

Código en el archivo sample.js

$(document).ready(function(){
    alert("sample.js loaded");
});

function alertHello()
{
    alert("hello");
}

Cuando intenté ejecutar la aplicación en el entorno de Windows phone 8, solo se está cargando Page1.js.

PASOS PARA REPRODUCIR EL ERROR

  1. Haga clic en "Cargar página1.html"

  2. Haga clic en "Mostrar alerta"

No recibo la alerta "hola" cuando lo intenté en el emulador / dispositivo Windows Phone 8.

Cualquier ayuda para resolver el problema será muy apreciada.

0
Veena Mohan 2 sep. 2014 a las 15:06

2 respuestas

La mejor respuesta

Debe esperar a que se realice el primer script para cargar el segundo script. getScript toma un segundo parámetro, puede pasar una función, o puede usar promesas como y encadenar con una función done ()

<script>
  $.getScript(path + "js/Page1.js").done(function(){
    $.getScript(path + "js/sample.js");
  });
</script>

Lo intenté y funciona ingrese la descripción de la imagen aquí

También tenga en cuenta que en su pregunta en el uso de su código use Sample.js con mayúscula "S" y en sus comentarios mencionó sample.js con minúscula "s". Yo uso sample.js tanto en el nombre del archivo como en el código.

1
csantanapr 6 sep. 2014 a las 02:05

Probar su proyecto de muestra en el emulador de Windows Phone 8 (a través de Visual Studio 12), después de hacer clic en el botón Página 1, recibí una alerta que decía "sample.js loaded". Luego hice clic en el botón Mostrar alerta y recibí una alerta que decía "hola".

No se puede reproducir ...
Su muestra tal cual está funcionando bien en Worklight Studio 6.2.0.00-20140818-1919 (misma versión y compilación que la suya).

Tal vez debería editar su pregunta y proporcionar los pasos completos que ha tomado para reproducir esto; Quizás te estás perdiendo un paso.

Qué he hecho:

  1. Importó el proyecto
  2. Haga clic con el botón derecho en la carpeta Windows Phone 8> Ejecutar como> proyecto de Visual Studio
  3. VS se abre> haga clic en el botón "reproducir"
  4. Se abre el emulador WP8> hizo lo anterior
0
Idan Adar 2 sep. 2014 a las 19:13