javascript - 动态内容注入(inject)的 Webview 限制

标签 javascript angularjs webview windows-runtime

我正在使用 webview 组件开发 winrt 8.1 应用程序。 我在 WebView 内容上使用 Angular 。 我在将图像(html 控件)源设置为 Angular 绑定(bind)时遇到问题...源由 Angular Controller 注入(inject),我在 inage src 中得到此前缀: 字首: “不安全:ms-local-stream://01010101-0101-0101-0101-0101010101212_64656d6f32” 完整路径: 不安全:ms-local-stream://01010101-0101-0101-0101-0101010101212_64656d6f32/test.png。 如果我使用 DOM Explorer 手动更改“test.png”的路径(删除“不安全”前缀),则会出现图像。但是当它被注入(inject)时,我得到这个前缀,它不显示图像,因为在 LocalFolder 上找不到路径。 如何禁用此行为?

图像源是通过Angular注入(inject)的。 如果源是静态的: 它可以工作,但是当同一个 src 替换为injection时,它得到这个前缀... 通常 webview 对于动态内容非常有限,当我在 WinJS 上使用 Angular 时,我遇到了动态 html 注入(inject)的问题。

最佳答案

因为$compileProvider负责编译html,所以你需要告诉$compileProvider你应该允许ms-local-stream:// 同时添加 src 标记,可以在 $compileProvider.imgSrcSanitizationWhitelist 方法中完成。如果您未指定清理白名单,则 Angular 将在值中添加 unsafe: 前缀。您可以在应用程序的配置中添加此设置。

标记

<img ng-src="{{url}}" alt="Title"/>

代码

app.config(['$routeProvider', '$compileProvider', 
  function($routeProvider, $compileProvider) {
    //this is for anchor href
    $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ms-local-stream):/); 
    //this is for img src
    $compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?|ms-local-stream):/); 
}]);

引用相同SO question .

关于javascript - 动态内容注入(inject)的 Webview 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29726306/

相关文章:

javascript - 单击将您移动到另一个站点的按钮后对 DIV 进行排序

javascript - 如何保护基于 JavaScript 的多人游戏

javascript - JQuery UI 选项卡 - 动态添加和删除鼠标悬停事件

javascript - 跟踪窗口调整大小 AngularJS 上的元素宽度

javascript - 来自 JSON 的每个元素的动态 CSS

webview - 从 webviews Javascript 调用 C++ 方法

android - 'onpageshow' 未在 Android WebView 应用程序上触发

javascript - 为什么 Fetch POST 请求后 RedirectToAction 不返回 new View()?

javascript - $http 请求后如何检测用户离线

javascript - 我可以在 Android/IOS Webview 中使用 navigator.mediaDevices.getUserMedia 吗?