Puisque ça ressemblait à jQuery était une option pour les applications JavaScript de Metro. Je commençais à attendre avec impatience le développement de Windows 8. J'ai installé Visual Studio 2012 Express RC et j'ai commencé un nouveau projet (les deux modèles, vide et grille, ont le même problème).
J'ai fait une copie locale de jQuery 1.7.2 et l'ai ajouté comme référence script.
<!-- SomeTestApp references -->
<link href="http://stackoverflow.com/css/default.css" rel="stylesheet" />
<script src="/js/jquery-1.7.2.js"></script>
<script src="/js/default.js"></script>
Malheureusement, dès que j'ai lancé l'application résultante, une erreur de console s'est produite :
HTML1701 : Impossible d'ajouter du contenu dynamique ' a' Un script a essayé d'injecter du contenu dynamique, ou des éléments précédemment modifiés dynamiquement, qui pourraient être dangereux. Pour Par exemple, l'utilisation de la propriété innerHTML pour ajouter du script ou du HTML malformé. générera cette exception. Utilisez la méthode toStaticHTML pour filtrer le contenu dynamique contenu dynamique, ou créez explicitement des éléments et des attributs avec une propriété telle que createElement. Pour plus d'informations, voir http://go.microsoft.com/fwlink/?LinkID=247104 .
J'ai placé un point d'arrêt dans une version non minifiée de jQuery et j'ai trouvé la ligne incriminée :
div.innerHTML = " <link/><table></table><a href='http://stackoverflow.com/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
Apparemment, le modèle de sécurité pour les applications Metro interdit de créer des éléments de cette manière . Cette erreur ne cause pas de problèmes immédiats pour l'utilisateur, mais étant donné son emplacement, je crains qu'elle ne fasse échouer les tests de découverte des capacités dans jQuery.
Je veux définitivement jQuery $.Deferred
pour rendre tout plus facile. Je préférerais pouvoir utiliser le moteur de sélection et les systèmes de gestion des événements, mais je pourrais m'en passer si je le devais.
Comment faire pour que la dernière version de jQuery soit compatible avec le développement de Metro ?