Iframe 无法在WinJS应用程序的HTML片段中显示base64编码的图像

Iframe 无法在WinJS应用程序的HTML片段中显示base64编码的图像,iframe,winjs,winrt-async,Iframe,Winjs,Winrt Async,我正在编写一个WinJS应用程序,它将用户复制到剪贴板的HTML片段替换为 稍后,当我去显示.html时,我创建了一个iFrame元素(使用jQuery$(''),并尝试将.html源代码导入其中,得到以下错误 0x800c001c-JavaScript运行时错误:无法添加动态内容。脚本试图注入动态内容或以前动态修改的元素,这可能不安全。例如,使用innerHTML属性添加脚本或格式错误的HTML将生成此异常。请使用toStaticHTML方法筛选动态内容,或使用诸如createElement之

我正在编写一个WinJS应用程序,它将用户复制到剪贴板的HTML片段替换为 稍后,当我去显示.html时,我创建了一个iFrame元素(使用jQuery$(''),并尝试将.html源代码导入其中,得到以下错误

0x800c001c-JavaScript运行时错误:无法添加动态内容。脚本试图注入动态内容或以前动态修改的元素,这可能不安全。例如,使用innerHTML属性添加脚本或格式错误的HTML将生成此异常。请使用toStaticHTML方法筛选动态内容,或使用诸如createElement之类的方法明确地创建元素和属性。有关更多信息,请参阅

如果我没有对图像进行base64编码,也就是说,保持图像完整,可以在页面上显示iFrame,而页面上显示图像,则不会出现异常

如果我在为base64创建URL子脚本之后获取html并通过toStaticHTML运行它,它将从标记中完全删除src=属性

我知道带有编码PNG的.html是正确的b/c我可以在Chrome中打开它,它显示得很好


我的问题是,我试图弄清楚为什么它会从标记中删除src=属性,以及如何修复它,例如,在不使用jquery和一些MS voodoo的情况下创建iframe,或者使用不同的技术来清理HTML?

因此,我发现了一个解决方案(不是100%相信它是最好的,我仍然在寻找一些不那么特别的东西)是MS Webview

我使用如下代码(其中内容是带有base64编码图像的html字符串)


我相信您希望使用execUnsafeLocalFunction。例如:

  var target = document.getElementById('targetDIV');
  MSApp.execUnsafeLocalFunction(function () { 
       target.innerHTML = content}
  );

您使用的是什么版本的jQuery?2+?我以为这些问题在2.0+系列的jQuery中得到了解决。使用jQuery 2.0.3。我知道很多问题都是用jq2解决的,不确定他的问题。
  var target = document.getElementById('targetDIV');
  MSApp.execUnsafeLocalFunction(function () { 
       target.innerHTML = content}
  );