0

我之前发布它,但是人们指着解决方案并没有解决这个问题,这样反而有更多的解决方案也给予了再次张贴:图片标记为不安全

我正在尝试使用AngularJS开发Chrome扩展。在我的基本指令中,我试图显示一个图像(一个本地文件)。这里是我的清单

{ 
    "name": "The Extension", 
    "manifest_version": 2, 
    "description": "A extension for chrome browsers", 
    "version": "1.0.0", 
    "background": { 
     "persistent": false, 
     "scripts": [ "background.js" ] 
    }, 
    "permissions": ["tabs", "<all_urls>"], 
    "web_accessible_resources": ["assets/img/extension-logo.png"] 
} 

我app.js(从background.js加载):

//This is adding base directive in app 
var app = '<div class="my-extension"><div base></div></div>'; 
var wrapper = '<div ng-non-bindable>' + app + '</div>'; 
$('body').append(wrapper); 
var myExtension = angular.module('my-extension', ['baseModule']); 

myExtension.config(['$compileProvider', function ($compileProvider) { 
    $compileProvider.aHrefSanitizationWhitelist(/^\s(https?ftp|mailto|local|data|chrome-extension):/); 
}]); 

window.name = ''; 
angular.bootstrap($('.my-extension')[0], ['my-extension']); 

,BASE是:

var baseModule = angular.module('baseModule', []); 
baseModule.directive('base', ['$http', function($http) { 
    return { 
     replace: true, 
     template: '<div>Hello World <img src={{logoImgURL}} /></div>', 
     link: function(scope, elem, attrs) { 
      scope.logoImgURL = chrome.extension.getURL("assets/img/extension-logo.png"); 
     } 
    } 
}]); 

图片src为得到了如下的值绑定:

src =“unsafe:chrome-extension:// lmkgimpeoaoblkhioebjoefpkhckc ojf/assets/img/extension-logo.png /“

对不起,如果问题很傻,我在扩展开发方面比较超级新。

+0

让我删除另外一个为我所编辑的问题和前面的问题没有工作 –

+0

你应该说明为什么这不是在问题本身就是一个重复的解决方案。目前看起来您已经错误地发布了它。 – wOxxOm

+0

如果它是angularjs在扩展页面中更改URL“unsafe:”,请检查此SO [问题](http://stackoverflow.com/a/15769779/5995040)它可能会帮助您解决有关URL不安全的问题。希望能帮助到你! –

回答

0

您应该将chrome-extension添加到img src清理白名单。同样像你一样为a href

myExtension.config(['$compileProvider', function ($compileProvider) { 
    // ... 
    $compileProvider.imgSrcSanitizationWhitelist(/^\s*((https?|ftp|file|blob|chrome-extension):|data:image\/)/); 
}]);