由于Content-Security-Policy,拒绝执行内联事件处理程序

时间:2012-07-26 11:39:54

标签: javascript google-chrome google-chrome-extension content-security-policy

我需要在此处更改什么才能使JavaScript代码与清单版本2和安全策略一起使用?

截图:
Screenshot

代码:

function init()
{
    chrome.tabs.getSelected(null, function(tab)
    {
        url = tab.url;
        if(url.indexOf('chrome://') == -1 && url.indexOf('about:blank') == -1){
            document.main.q.value = url;
        }
    });
}

3 个答案:

答案 0 :(得分:5)

在我将HTML文件中的JavaScript代码放入自己的文件并将以下内容添加到清单文件后,我才开始工作:

"content_scripts": [ {"js": [ "popup.html" ], "matches": [ "http://*/" ]} ],
"permissions": [ "tabs" ]

答案 1 :(得分:3)

必须使用addEventListener重写内联事件处理程序定义并将其解压缩到popup.js,因此您应删除onfocus="this.select()"popup.htmlpopup.js中的document.addEventListener('DOMContentLoaded', function () { document.getElementById('address_box').addEventListener('onfocus', this.select); }); {1}},添加以下行:

{{1}}

答案 2 :(得分:0)

确保您使用的是最新版本的库。我不认为您使用的是jQuery,但如果您确实使用的是支持CSP的最新版本。 http://bugs.jquery.com/ticket/11249

当您更新到清单版本2时,扩展和库代码都需要支持CSP。