更改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"
  }
);
基本上,这会将我的页面更改为id
loginPage
。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/

但是这些补丁确实有效,对我来说太好了