Bonjour,
Je me décide à migrer de Jquery 1.3.2 vers 1.4.2 sur notre plateforme web.
Cependant, je bloque face à un comportement inattendu :
Le code <script type="text/javascript"></script> est filtré lors d'un appel à $() [http://api.jquery.com/jQuery/] et qu'on y affecte un contexte. Le JS n'est donc pas exécuté.
Voilà un exemple simple pour illustrer le problème :
Page appelante :
Code :
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" >
- <head runat="server">
- <title></title>
- <script src="jquery-1.4.2.js" type="text/javascript"></script>
- <script type="text/javascript">
- $.get("load.aspx", function(data) {
- alert("Data Loaded: " + data);
- var content = $("#content", data).html();
- $("#customContainer" ).html(content);
- alert(data);
- alert(content);
- });
- </script>
- </head>
- <body>
- <form id="form1" runat="server">
- <div>
- <h1>test jquery</h1>
- <div id="customContainer"></div>
- <hr />
- <div id="result"></div>
- </div>
- </form>
- </body>
- </html>
|
Page appelée :
Code :
- <div>
- <strong>du html</strong>
- <p id="content">
- <span style="color: Red">toto</span>
- <br />
-
- <script type="text/javascript">
- alert("titi" );
- </script>
-
- <span>tutu</span>
- </p>
- </div>
|
La ligne var content = $("#content", data).html(); supprime le code JS.
Or cela fonctionne parfaitement sous JQuery 1.3.2.
Je peux clairement voir que le JS a disparu quand je fais mes alert :
alert(data); // j'ai toute la page avec le JS
alert(content); // je ne veux que le contenu de la div portant l'id content (mais avec le JS :)
Quelqu'un aurait une idée ?