Поскольку казалось, что jQuery можно использовать в приложениях Metro JavaScript, я начал с нетерпением ждать до Windows 8 дев. Я установил Visual Studio 2012 Express RC и начал новый проект (как пустые, так и сетчатые шаблоны имеют одинаковую проблему).
Я сделал локальную копию jQuery 1.7.2 и добавил ее в качестве ссылки на скрипт.
<!-- SomeTestApp references -->
<link href="/css/default.css" rel="stylesheet" />
<script src="/js/jquery-1.7.2.js"></script>
<script src="/js/default.js"></script>
К сожалению, как только я запустил полученное приложение, оно выдает ошибку консоли:
HTML1701: невозможно добавить динамическое содержимое 'a'. Сценарий попытался внедрить динамическое содержимое или элементы, ранее измененные динамически, что может быть небезопасно. Например, это исключение будет создано при использовании свойства innerHTML для добавления скрипта или искаженного HTML. Используйте метод toStaticHTML для фильтрации динамического содержимого или явно создавайте элементы и атрибуты с помощью такого метода, как createElement. Дополнительные сведения см. на странице http://go.microsoft.com/fwlink/?LinkID=247104<. /а>.
Я установил точку останова в неминифицированной версии jQuery и обнаружил оскорбительная строка:
div.innerHTML = " <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
Судя по всему, модель безопасности для приложений Metro запрещает создавать элементы таким образом а>. Эта ошибка не вызывает каких-либо немедленных проблем для пользователя, но, учитывая ее местоположение, я беспокоюсь, что это приведет к сбою тестов обнаружения возможностей в jQuery, чего не должно быть.
Я определенно хочу, чтобы jQuery $.Deferred облегчал почти все. Я бы предпочел иметь возможность использовать механизм выбора и системы обработки событий, но я бы жил без них, если бы мне пришлось.
Как заставить последнюю версию jQuery хорошо работать с Metro-разработкой?
$.DeferredjQuery. - person patridge   schedule 02.06.2012