[英]IBM Worklight - windows 8 tablet run time javascript exception
[英]IBM Worklight 6 - Windows 8 Tablet append function exception
我們最近開始測試已經在Windows 8 Tablet上適用於Android,IOS和WP8的應用程序(即W8桌面應用程序)
當我們嘗試運行它時,該應用程序立即啟動並關閉。 進一步調試時,我們發現從WLJQ.js拋出了一個異常(參見圖片),更准確地說,在第5964行追加了:function()
考慮到例外情況的詳細信息,並經過一些調查使我們鏈接到此鏈接http://msdn.microsoft.com/zh-cn/library/windows/apps/Hh767331.aspx ,我們找到了一種解決方法,攻擊WLJQ.js文件,使用MS API跳過注入驗證。
到目前為止,到目前為止還不錯,但是我非常有信心更改內部Worklight文件不是適當的解決方案,因此我們完成的代碼可能會破壞其他平台。
基本上,我們在WLJQ.js文件中對此進行了更改:
append: function() {
return this.domManip(arguments, true, function( elem ) {
if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
this.appendChild( elem );
}
});
這樣
append: function() {
return this.domManip(arguments, true, function( elem ) {
if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
var self = this;
MSApp.execUnsafeLocalFunction(function () {
self.appendChild(elem);
});
軟件版本:Worklight 6.0.0 Visual Studio 2012
關於如何解決它的任何線索?
您是否正在為應用程序使用Worklight的jQuery? 而不是更改WLJQ.js,我將刪除以下行:
<script>Window.$ = Window.jQuery = WLJQ</script>
並將其替換為您的應用中顯式加載的jQuery。 jQuery 2.0應該可以在Windows 8上使用,因此我將從此開始。
您沒有說是否使用jQuery mobile。 即使您使用的是jQuery 2.0,也會造成問題。 但是,至少如果您使用的是應用程序中的jQuery副本,則修改它不會引起修改WLJQ.js的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.