2011-04-11 17 views
0

我正在設計一種簡單的方法來在iframe之間進行通信,並且我得到一個奇怪的XSS錯誤,即使這兩個URL都有保存域。奇數JavaScript XSS錯誤

Unsafe JavaScript attempt to access frame with URL file:///home/bryre/sharedData/Programs/javascript/pong/htdocs/connectionWindow.html from frame with URL file:///home/bryre/sharedData/Programs/javascript/pong/htdocs/connectionTest.html. Domains, protocols and ports must match. 

我需要讓它們在服務器上才能使用嗎?這裏是代碼:

ConnectionTest.html

<html> 
<head> 
    <title>connectionTest</title> 
    <script src='connection.js'></script> 
</head> 
<body> 
    <script> 
     var windowToConnectTo = document.createElement('iframe') 
     windowToConnectTo.src = 'connectionWindow.html' 
     document.body.appendChild(windowToConnectTo) 

     var connection = new Connection({}); 
     connection.connect(windowToConnectTo, 10); 
    </script> 
</body> 

ConnectionWindow.html

<html> 
<head> 
    <title>connectionTest</title> 
    <script src='connection.js'></script> 
</head> 
<body> 
    <script> 
     var connection = new Connection({}); 
    </script> 
</body> 

connection.js

function Connection(commands){ 
this.inDiv = document.createElement('div') 
this.inDiv.id = 'in' 
this.inDiv.style.disply = 'none' 
document.body.appendChild(this.inDiv) 

this.commands = commands 
} 

Connection.prototype = { 
attemptConnect: function(to){ 
    to.document = (to.contentWindow || to.contentDocument) 
    if(to.document.document) 
     to.document = to.document.document 
    this.to = to.document.getElementById('in') //ERROR HAPPENS HERE 
    if(this.to == null) 
     return false 
    return true 
}, 
connect: function(to, retryRate){ 
    cThis = this 
    var interval = setInterval(function(){ 
     if(cThis.attemptConnect(to)) 
      clearInterval(interval) 
    }, retryRate) 
} 
} 

回答

4

他們沒有任何域名,他們是本地文件。使用HTTP服務器來訪問它們。

+0

謝謝,把它放到我的xampp服務器似乎修復它。 – 2011-04-11 21:05:22