我有一些代码可以在Chrome,Safari,IE和Opera上正常运行。但由于某些原因,只有FireFox 18我遇到了这个问题
错误:拒绝访问属性“文档”的权限 [打破此错误]
window.opener.document.getElementById(“creditsTotal”)。innerText = credits;
以下是有问题的代码(请记住,只有ff18会抛出此XSS错误)
chat_client.rtmp.update_chat_status = function(){
//console.log("The overridden method has been called.");
if (!this.chat.current_chat_user)
return;
this.log("Updating chat session.");
$.ajax({
url: "{% url parthenon_chat.rtmp.views.update_chat_session %}",
type: 'POST',
data: {
'session_id': this.chat.session_ids[this.chat.current_chat_user],
'csrfmiddlewaretoken': CSRF_TOKEN
},
success: function(credits) {
//make sure that credits var is integer and non-negative
var intRegex = /^\d+$/;
if(intRegex.test(credits)) {
console.log("Credits remaining: " + credits);
window.opener.document.getElementById("creditsTotal").innerText = credits;
}
}
});
有什么想法?我没有尝试使用旧版本的ff18来查看我是否会得到相同的XSS异常。
答案 0 :(得分:1)
你知道这在Internet Explorer中不起作用它只在caniuse.com上有部分
请参阅:http://caniuse.com/#feat=x-doc-messaging
你必须有一个后退,即
答案 1 :(得分:0)
安全异常似乎是由聊天应用程序从子页面切换到父页面的端口,即使这是在同一个域上。对此的解决方案是使用html5规范10.4,并在子窗口和父窗口容纳上重写我的javascript。以下是解决此XSS异常的当前WHATWG规范:http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#web-messaging