拒绝执行JavaScript URL,因为它违反了以下内容安全策略指令:

时间:2013-09-07 22:29:56

标签: javascript jquery google-chrome-extension

在发布之前,我阅读了与标题相关的帖子,我确信我的问题有一个解决方案,但我是一个带有扩展,JavaScript和JQuery的n00b我无法分辨......

导致拒绝的代码是:

innerframe = $("<iframe/>").css({
    top: WIDGET_TITLE_HEIGHT + "px",
    left: "0px",
    width: "100%",
    height: "1000px",
    border: "none",
    align: "center",
    display: "block"})
.appendTo(innerdiv)
.load(function() {
    onStart()
})
.attr({
    frameBorder: 0,
    //scrolling:0,
    src: 'javascript:(function(){document.open();document.domain="' + document.domain + '";document.write(\' <!DOCTYPE html>' + '\');document.close();})();'
})[0];

行src:'javascript ....'是罪犯,但我不知道解决方案是什么。

我读过的帖子清楚地表明代码违反了Chrome的CSP,我看到过提及消息传递,沙盒等等。

我希望有人能提供解决方案并帮助我了解正在发生的事情。

提前致谢!

1 个答案:

答案 0 :(得分:1)

您的脚本可能违反了Same origin policy,它表示脚本只能在来自同一域的网页上执行。具体而言,它们必须具有相同的协议和主机。

您的第document.write(\' <!DOCTYPE html>' + '\');行可能是罪魁祸首。