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\/)/); 
}]);