Javascript Chrome扩展:我需要什么权限来避免执行内联事件处理程序错误

Javascript Chrome扩展:我需要什么权限来避免执行内联事件处理程序错误,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我正在使用,我想知道是否有人知道为什么会发生这种情况 我现在只把它作为我的return“data:image/gif;base64,R0lGODlhOw=” 这是我的密码 var GetCanvas = document.getElementById("GifHere"); var contextOfCanvas = GetCanvas.getContext("2d"); var encoder = new GIFE

我正在使用,我想知道是否有人知道为什么会发生这种情况

我现在只把它作为我的return“data:image/gif;base64,R0lGODlhOw=”

这是我的密码

    var GetCanvas = document.getElementById("GifHere");
        var contextOfCanvas = GetCanvas.getContext("2d");
        var encoder = new GIFEncoder();
        encoder.setRepeat(0);
        encoder.setDelay(1000);
        GetCanvas.width = 1600;
        GetCanvas.height = 800;
        encoder.setSize(1600,800);      

        contextOfCanvas.fillStyle = "rgb(255,255,255)";  
        contextOfCanvas.fillRect(0,0,GetCanvas.width, GetCanvas.height); 
        encoder.start();
        console.log(encoder.start());

        var GifLength = $(".LayerImages").length + 1;
        StartingLength = GifLength;
        StartPosition = 1;
        loadGifImages(encoder,GifLength);


        var imageOf = GetCanvas.toDataURL("image/"+SelectedValue);
        var FileType = SelectedValue;
        var imageData = imageOf;
        var RemoveLength = "data:image/png;base64,";
        var stringLength = parseInt(imageData.length) - parseInt(RemoveLength.length);
        var sizeInBytes = 4 * Math.ceil((stringLength / 3))*0.5624896334383812;
        var FileSize = sizeInBytes / 1024;
这是我的loadGifImages函数

    function loadGifImages(encoder,length){

    
    var GetCanvas = document.getElementById("GifHere");
    var contextOfCanvas = GetCanvas.getContext("2d");
    
    var Canvas = document.getElementById("Can"+StartPosition);
    console.log(Canvas);
    var CanvasContext = Canvas.getContext("2d");
    var image0 = new Image();
    
    var imageData = CanvasContext.getImageData(0,0,1600,800);
    encoder.addFrame(imageData,true);
    console.log(imageData);
    StartPosition++;
    length--;


    if(length == 1 && StartPosition == StartingLength){
        isGifDone = true;
        encoder.finish();
        
        var gif = encoder.stream().getData();
        var url = 'data:image/gif;base64,'+encode64(gif);
        
        console.log(url);
        /*  document.getElementById("ImageSaved").src = 'data:image/gif;base64,'+encode64(encoder.stream().getData());
    */  }else{

        loadGifImages(encoder,length);
    }
    
一切似乎都正常,但该库中的某些东西似乎给了chrome扩展一个错误。我尝试将content\u security\u策略添加到manifest.json中,但它似乎不起作用。这是我的manifest.json文件

{
    "name": "Better Photo Editor",
    "version": "0.0.0.1",
    "content_security_policy":"script-src 'self' https://apis.google.com; object-src 'self'",
    "description": "Better Photo Editor",
    "content_scripts": [
        {
            "matches": ["<all_urls>"],
            "css": ["CSS/style.css"]
        }
    ],

    "browser_action": {
        "default_icon": "Images/Drawing.png",
        "default_title": "",
        "default_popup": "Home.html"

    },
    "permissions": ["<all_urls>","http://*/","https://*/","activeTab","unlimitedStorage"],
    "manifest_version": 2
}
{
“名称”:“更好的照片编辑器”,
“版本”:“0.0.0.1”,
“内容安全策略”:“脚本src'self”https://apis.google.com;对象src“self”,
“说明”:“更好的照片编辑器”,
“内容脚本”:[
{
“匹配项”:[“”],
“css”:[“css/style.css”]
}
],
“浏览器操作”:{
“默认图标”:“Images/Drawing.png”,
“默认标题”:“,
“默认弹出窗口”:“Home.html”
},
“权限”:[“”、“http://*/”、“https://*/”、“activeTab”、“unlimitedStorage”],
“清单版本”:2
}
编辑:我认为这与GIFEncoder.js中的writebyte有关,但我不确定。虽然我还在努力,但我什么都查不到。如果有人能帮忙,我将不胜感激!!
我在任何html页面中都没有任何内联javascript。我知道这可能会被问到,现在我清楚地表明这不是问题。

请参阅。这个gif库使用内联脚本。我不认为是这样,我认为它与我正在使用的库有关。让我看看我有什么错误,因为我试图写入图像数据,但我认为我没有正确设置。库演示没有显示这样的示例,因此我必须检查并查看当前形式的库需要您放松CSP。理想情况下,您应该重新配置甚至重写库,使其不在html中使用内联js处理程序。我修复了一些代码,但它返回的唯一url是“data:image/gif;base64,R0lGODlhOw==”,而不是图像的其余代码。我将用新代码更新问题注意,我假设错误消息中的
Image.html
属于库。