Javascript Windows 8应用商店应用程序和jQuery-MSApp.execunsaleocalFunction
我正在使用Cordova编写一个Windows8JavaScript应用商店应用程序。当我在Windows8中使用jQuery时,为什么我必须修改jQuery库以使用以下函数Javascript Windows 8应用商店应用程序和jQuery-MSApp.execunsaleocalFunction,javascript,jquery,html,jquery-mobile,windows-8,Javascript,Jquery,Html,Jquery Mobile,Windows 8,我正在使用Cordova编写一个Windows8JavaScript应用商店应用程序。当我在Windows8中使用jQuery时,为什么我必须修改jQuery库以使用以下函数 MSApp.execUnsafeLocalFunction 我最好不要这样做,因为每当发布jQuery Mobile的新版本时,这会带来一些不便,谢天谢地,这种情况并不常见-项目中是否有禁用此功能的设置 我使用的是jQuery v1.9.1和jQuery Mobile v1.3.2,它们是最新的稳定版本。我读到这个问题在
MSApp.execUnsafeLocalFunction
我最好不要这样做,因为每当发布jQuery Mobile的新版本时,这会带来一些不便,谢天谢地,这种情况并不常见-项目中是否有禁用此功能的设置
我使用的是jQuery v1.9.1和jQuery Mobile v1.3.2,它们是最新的稳定版本。我读到这个问题在jQuery2.x时已经解决了——有人能确认这是否属实吗
如果是这样,在我的移动应用程序项目中使用jQuery 2.x是否不安全?jQueryV1.9.1中是否有jQueryMobile v1.3.2所依赖的函数在jQueryV2.0中不可用?对于某些函数,您需要使用MSApp.execunsaleocalfunction,因为jQuery以一种不安全的方式添加HTML。一些HTML元素和属性被认为是不安全的,当jQuery使用例如append或innerHTML将它们不安全地添加到DOM中时,应用程序会崩溃。可以找到不安全的HTML元素和属性 据我所知,这个问题在jQuery2.x中没有解决。我仍然在努力让带有不安全关键字的异步页面更改正常工作。当我有解决方法或修复方法时,我会让你知道
更新:MSOpenTech创建了一个JavaScript动态内容垫片,解决了这个问题。查看我的或他们的。对于某些函数,您需要使用MSApp.execUnsafeLocalFunction,因为对于Microsoft来说,jQuery以不安全的方式添加HTML。一些HTML元素和属性被认为是不安全的,当jQuery使用例如append或innerHTML将它们不安全地添加到DOM中时,应用程序会崩溃。可以找到不安全的HTML元素和属性 据我所知,这个问题在jQuery2.x中没有解决。我仍然在努力让带有不安全关键字的异步页面更改正常工作。当我有解决方法或修复方法时,我会让你知道
更新:MSOpenTech创建了一个JavaScript动态内容垫片,解决了这个问题。查看我的或他们的。在deviceready事件和警报中调用此函数,jQuery html方法将在任何地方都有效
function WinAppHack() {
if (MSApp && MSApp.execUnsafeLocalFunction) {
// override jquery html method
var old_html = $.fn.html;
$.fn.html = function () {
var args = arguments;
var This = this;
var result = null;
//$(this).css('font-size', 24)
MSApp.execUnsafeLocalFunction(function () {
result = old_html.apply(This, args);
});
return result;
};
// override alert method
alert = function (msg, Closed) {
if (!Closed)
Closed = function () { };
navigator.notification.alert(
msg,
Closed,
'Message',
'OK'
);
};
}
}
在deviceready事件和警报中调用此函数,jQuery html方法将在任何地方都有效
function WinAppHack() {
if (MSApp && MSApp.execUnsafeLocalFunction) {
// override jquery html method
var old_html = $.fn.html;
$.fn.html = function () {
var args = arguments;
var This = this;
var result = null;
//$(this).css('font-size', 24)
MSApp.execUnsafeLocalFunction(function () {
result = old_html.apply(This, args);
});
return result;
};
// override alert method
alert = function (msg, Closed) {
if (!Closed)
Closed = function () { };
navigator.notification.alert(
msg,
Closed,
'Message',
'OK'
);
};
}
}
谢谢回答得很好-这很烦人。我希望jQuery的人能尽快解决这个问题。如果你发现了什么,请告诉我,我将不胜感激!查看我的最新版本,了解我在与Windows 8结合的JQM中发现的一些变通方法和怪癖。我用MSOpenTech创建的JavaScript动态内容垫片的一些信息更新了我的答案。谢谢!回答得很好-这很烦人。我希望jQuery的人能尽快解决这个问题。如果你发现了什么,请告诉我,我将不胜感激!查看我的最新版本,了解我在与Windows 8结合使用的JQM中发现的一些变通方法和怪癖。我用MSOpenTech创建的JavaScript动态内容填充程序的一些信息更新了我的答案。append、prepend、appendTo、prependTo方法如何?抱歉,html并不是操作DOM的唯一方法。无论如何,我投票支持你的帖子,因为这个问题让我发疯,我要放弃我的WP8应用程序,只关注Android。append,prepend,appendo,prependTo方法呢?抱歉,html并不是操作DOM的唯一方法。无论如何,我投票支持你的帖子,因为这个问题让我发疯,我要放弃我的WP8应用程序,只关注Android。