w3schools unir type tag script array javascript jquery asp.net jquery-mobile scriptmanager

javascript - unir - Error con JQuery Mobile



object tag w3schools (1)

Probé tu código y pude replicar el error.

Primero, creo que ScriptManager debe existir antes que cualquier cosa que lo esté usando. Hacer esto dará como resultado ningún error:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1.Default" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title></title> <link rel="stylesheet" href="http://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.css" /> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> </form> <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js"></script> <script src="http://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script> </body> </html>

En segundo lugar, los scripts que está incluyendo son versiones minimadas o de lanzamiento. Esta es una suposición no confirmada, pero tal vez está esperando versiones no minuciosas o de depuración para el procesamiento y no existen y al poner el ScriptMode = "Release" posiblemente le indique que debería usar versiones minificadas. Esto podría probarse incluyendo los scripts minificados y de depuración en el proyecto en lugar de obtenerlos de forma remota ... Así es como funciona MVC, por eso sugiero que tal vez la Aplicación web funcione de la misma manera.

Aparte: seguir la información en este link aquí es otra manera que no produce ningún error:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1.Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title></title> <link rel="stylesheet" href="http://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.css" /> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> <Scripts> <asp:ScriptReference Path="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js"/> <asp:ScriptReference Path="http://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.js" /> </Scripts> </asp:ScriptManager> </form> </body> </html>

Editar:

Por alguna razón, también intenté configurar esto en Web.config:

<compilation debug="true" targetFramework="4.0"/>

a esto:

<compilation debug="false" targetFramework="4.0"/>

Esto también funciona con tu código original, pero, por alguna razón, siento que es una curita porque lo más probable es que solo ocultes el error en lugar de solucionarlo.

A continuación, recibo este error:

He reducido el código del problema a JQuery Mobile 1.0 o superior y a Asp.NET ScriptManager.

Agregué un nuevo Web Forms Project a Visual Studio 2012 e incluí el siguiente código:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1.Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <link rel="stylesheet" href="http://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.css" /> <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js"></script> <script src="http://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" ScriptMode="Release" runat="server"></asp:ScriptManager> <div> </div> </form> </body> </html>

Sin código en la página Código detrás.

  • Esto es todo, sin embargo, cuando ejecuto el proyecto, recibo el error anterior cuando se incluyen script ScriptManager y JQuery Mobile.
  • No se produce ningún error cuando se eliminan JQuery Mobile o ScirptManager.

Medio día preguntándome e intentando encontrar una explicación, un sitio web en particular que encontré sugirió que se agregue ScriptMode = "Release" a ScriptManager.

Después de agregar ScriptMode = "Release" a ScriptManager, no recibí el error anterior.

Búsqueda en MSDN, que definió ScriptMode: Obtiene o establece un valor que especifica si se procesan las versiones de depuración o versión de las bibliotecas de scripts de cliente.

No se lanzó un error después de agregar ScriptMode a ScriptManager, pero ¿Por qué? ¿Alguien puede explicar por qué la adición de ScriptMode evita que aparezca el error y, al agregar ScriptMode, significaría realmente un solucionador o un Band-Aid?

El error se arroja aquí:

Gracias

A continuación incluí la página HTML procesada:

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title> </title><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> </head> <body> <form method="post" action="WebForm1.aspx" id="form1"> <div class="aspNetHidden"> <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE3MTc1MDc5MjBkZKegov+UVDfF6HxSUeRymFH24991gFZlPU0b/IsFSVOC" /> </div> <script type="text/javascript"> //<![CDATA[ var theForm = document.forms[''form1'']; if (!theForm) { theForm = document.form1; } function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } //]]> </script> <script src="/WebResource.axd?d=YNeW-uV30W9QUFseu7cpdlXTvjGS-17TUbJFOrYgly8h7oJPnNmO65B9MsXEKqakJOaVgg29CB6vB4ZdmlLF7g8EEKPfdXLBpPT96ABclOM1&amp;t=634773918900000000" type="text/javascript"></script> <script src="/ScriptResource.axd?d=1zt3Mkq4WcBu9zbsV4m9-M7KCvrT-jr1XXgEzhW9nlIjwSm5LqLoLvy1RRMu-5CPbCTtFRsnupAShqvEwf1EA89LxKLiAOgKvWaOicLhKJXKcoRKfxG9wfeNLN-ZylWfgK9ozBiE9bfZ-FsMcBHxpWRRemoiIMSGZzuYvNAs6Evl_1N7xJCIcbyAp01izsBK0&amp;t=6119e399" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ if (typeof(Sys) === ''undefined'') throw new Error(''ASP.NET Ajax client-side framework failed to load.''); //]]> </script> <script src="/ScriptResource.axd?d=QXV43dBeyoevgM325nU9rlBmVyB375pfaFEuLQ1v1BisiTdf-HdmxtF90_hgFfCcn3l6abc0C_OIvNebx_7cosgD1E8ZEeTK680r4HRGT7Pngzk9Ei-BKOI48hrwHGv9cUfKN2zloA0qh8YHXKfefO8eUGQhV8M-XarSzMOPpgJwr8FS8Yb8rvlVPvcSzSTE0&amp;t=6119e399" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ Sys.WebForms.PageRequestManager._initialize(''ScriptManager1'', ''form1'', [], [], [], 90, ''''); //]]> </script> <div> </div> </form> </body> </html>

A continuación muestro cómo intenté activar noConflict:

<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 type="text/javascript"> $.noConflict(); </script> <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>