4

在发布之前,我阅读了与标题相关的帖子,我确信我的问题有一个解决方案,但我对扩展、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,而且我看到提到消息传递、沙盒等。

我希望有人可以提供解决方案并帮助我了解发生了什么。

提前致谢!

4

1 回答 1

1

您的脚本可能违反了同源策略,即只能在来自同一域的页面上执行脚本。具体来说,它们必须具有相同的协议和主机。

你的线路document.write(\' <!DOCTYPE html>' + '\');可能是罪魁祸首。

于 2013-09-08T00:28:54.507 回答