2012-12-23 49 views
3

parent.html無法從遠程IFrame調用父函數

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <script type="text/javascript"> 
    function say() { 
      alert("parent.html------>I'm at parent.html"); 
    } 

    function callChild() 
    { 
      myFrame.window.say(); 
    } 
    </script> 
    </head> 

    <body>  
    <input type=button value=" call child.html say()" onclick="callChild()"> 
    <iframe name="myFrame" src="http://66.175.214.250/child.html"></iframe> 
    </body> 
    </html> 

child.html

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <script type="text/javascript"> 

    function say() 
    { 
     alert("child.html--->I'm at child.html"); 
    } 

    function callParent() { 
     window.top.say(); 
    } 
    </script> 
    </head> 
    <body> 
    <input type=button value="call parent.html say() " onclick="callParent()"> 
    </body> 
    </html> 

這在本地主機中測試時parent.html和child.html在相同的文件夾中。但是,如果我將child.html上傳到遠程主機。有錯誤:父母不能調用孩子的功能,孩子不能調用父母的功能。

我不知道爲什麼。這是iframe調用它的父應該是本地的,或者在遠程主機塊中的東西?

感謝

+1

這兩個頁面的URL必須具有相同的方案(「http」或「https」),完全相同的域名和相同的端口號(如果指定)。 – Pointy

+1

[同源策略](http://javascript.info/tutorial/same-origin-security-policy)。 –

回答

1

即使是一些從子幀離開子域(WWW)那樣簡單可能會導致瀏覽器停止任何和所有的兩種瀏覽器之間的通信,因爲它們並不被認爲是相同的起源或域名。