更改Cordova应用程序(使用jQuery Mobile)上的页面会导致Windows上的安全问题
相关条款:更改Cordova应用程序(使用jQuery Mobile)上的页面会导致Windows上的安全问题,jquery,cordova,jquery-mobile,Jquery,Cordova,Jquery Mobile,相关条款: 使用jQuery 1.8.2和jQuery Mobile 1.3.0 我目前正在为IOS、Android和Windows开发Cordova应用程序。我目前正在使用Windows版本,似乎遇到了无法通过innerHtml或outerHtml添加内容的问题 至于一个错误,我得到以下信息: HTML1701:无法添加脚本试图添加的动态内容“a” 注入动态内容或先前动态修改的元素, 这可能不安全。例如,使用innerHTML属性添加 脚本或格式错误的HTML将生成此异常。使用 toStat
使用jQuery 1.8.2和jQuery Mobile 1.3.0 我目前正在为IOS、Android和Windows开发Cordova应用程序。我目前正在使用Windows版本,似乎遇到了无法通过
innerHtml
或outerHtml
添加内容的问题
至于一个错误,我得到以下信息:
HTML1701:无法添加脚本试图添加的动态内容“a”
注入动态内容或先前动态修改的元素,
这可能不安全。例如,使用innerHTML属性添加
脚本或格式错误的HTML将生成此异常。使用
toStaticHTML方法来过滤动态内容,或显式创建
使用createElement等方法创建元素和属性。更多
有关详细信息,请参阅
我已经找到了一些解决这个问题的方法,问题似乎是Windows不喜欢您通过innerHtml或outerHtml来调整内容,但希望您以不同的方式进行调整
这里的第一个问题是我有如下代码:
$.mobile.changePage(
"#loginPage", {
changeHash: "false"
}
);
基本上,这会将我的页面更改为idloginPage
。changePage将使用innerHtml,因此我无法访问它
我尝试的一个解决方案是用一条规则包装我的代码,基本上是这样的:你必须知道你在做什么,所以我会为你忽略这个错误
MSApp.execUnsafeLocalFunction(function () {
$.mobile.changePage(
"#loginPage", {
changeHash: "false"
}
);
});
这管用,耶!还是没有?似乎有超过35个页面更改,应用程序将在每一个页面上崩溃,除非我将
MSApp.execUnsafeLocalFunction()
包装在它们周围。。但我不会那么做的
另一个应该有效的解决方案是调整jQuery库文件。此处解释了全部详细信息:。这里的问题是它根本不起作用。我调整了每一条规则(assert块、assertUsableName函数和jQuery.support函数),但它似乎不起作用
所以现在,我没有什么把戏了。希望任何人都能帮助我。如果需要的话,我会提供更多的代码。好吧,我自己想出来的,这真的很愚蠢。好了,开始吧 我对jQuery中的每个
innerHtml
进行了包装,将MSApp.execUnsafeLocalFunction()
包装在jQuery中,从而纠正了所有问题并修补了jQuery文件。因为我使用的是jQuery Mobile,所以我还修补了jQuery.Mobile.js文件
我的问题是我编辑了错误的jquery文件。由于我在Visual Studio中导入了现有项目,jQuery文件被添加到我的/www/js/lib/jQuery mobile/
中,而我正在查看/www/jQuery mobile/
但是这些补丁确实有效,对我来说太好了