2012-04-19 3 views
0

Я следую this tutorial при добавлении мобильных функций в приложение ASP.Net MVC 4.jQuery Mobile вызывает доступ в jQuery

При запуске приложения (порождение страницу Входа для загрузки), я получаю Access denied в следующей точке в JQuery 1.7.2 (также воспроизведен с 1.7.1)

if (elem.parentNode) { // Access denied here, Line 6081 
    elem.parentNode.removeChild(elem); 
} 

Спускаясь вызов стек, я вижу следующее jquery.mobile-1.1.0.js (есть несколько других методов на стеке вызовов, а)

// Called from .initializePage: 
if (!$pages.length) { 
    $pages = $("body").wrapInner("<div data-" + $.mobile.ns + "role='page'></div>").children(0); // Called from here, Line 7475 
} 

// First method in jquery.mobile: 
if($.mobile.autoInitializePage){ 
    $.mobile.initializePage(); // Called from here, Line 7541 
} 

Если я закомментировать jquery.mobile из моего приложения, оно работает как это было ранее:

// _Layout.cshtml: 
<script src="@Url.Content("~/Scripts/jquery-1.7.2.js")" type="text/javascript"></script> 
@*<script src="@Url.Content("~/Scripts/jquery.mobile-1.1.0.js")" type="text/javascript"></script>*@ 
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.19.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 

Все файлы JavaScript подаются через встроенный веб-сервер VS2010 из домена основного проекта.

UPDATE

При дальнейшем осмотре, я понимаю, что это то, что JQuery Mobile делает, когда происходит ошибка:

// find and enhance the pages in the dom and transition to the first page. 
// if no pages are found, create one with body's inner html 
$pages = $("body").wrapInner("<div data-" + $.mobile.ns + "role='page'></div>").children(0); 

Что происходит, чтобы вызвать jquery.mobile потерпеть неудачу?

ответ

0

Оказалось, что на странице была ссылка на сторонний скрипт (Comodo SSL), что, безусловно, не обязательно должно быть на мобильной версии страницы. jQuery Mobile попытался манипулировать связанной DOM, вызвав ошибку.

0

Благодарим за то, что вы указали мне в правильном направлении. Я искал дни, почему метод popup (JQuery Mobile) не работал на странице .aspx. Visual Studio автоматически инициализирует страницу с помощью scriptmanager.

Решение было закомментируйте следующую строку в Asp: ScriptManager тег, поскольку он конфликтует со ссылкой JQuery в голове страницы:

<asp:ScriptReference Name="jquery" />