2012-08-15 115 views
0

我有一個javascript函數,當所有的文件都在同一個html文檔中時,它被調用,它都是成功的。 但是,當我把瑞士法郎放在iframe中時,我得到一個錯誤;來自swf在iframe中的Javascript調用

Unsafe JavaScript attempt to access frame with URL http://example.com/ from  frame with URL http://example2.com. Domains, protocols and ports must match. 

iframe和父文檔具有不同的域。我該如何解決它?在這種情況下,其中一個要求是它應該可以在iframe中工作。所以把它們放在同一個框架中並不是解決方案。

+0

您的傷害是「同源策略」,所以這被瀏覽器阻止。這是不可能的,你正在嘗試的是一種跨邊界腳本。 – philipp 2012-08-15 09:00:22

+0

我有一個swf是sitelocked到一個特定的域..所以我使用iframe來解決問題的網站鎖定..但同時有一個要求,瑞士法郎和js應該互相交談..在正常情況下(JS和SWF在同一個HTML框架)它的工作原理..但問題是,當SWF是在iframe中,它不能調用js函數,因爲js實際上在iframe的父文檔.. – 2012-08-15 10:51:22

回答

1

正如Philipp評論的那樣,瀏覽器的交叉腳本保護功能阻止了這種情況(SWF元素僅僅是一種分心 - 子框架中的任何JavaScript將被阻止調用父框架,如果它們不共享相同的域名)。

但是,您的父框架應該有權訪問子iframe,因此您可以從swf中設置子iframe中的參數並從父框架中輪詢該參數。

否則,在PHP或.NET中創建服務器端腳本或任何您感覺舒服的代碼都是微不足道的,並且可以從中反彈出一個值。

相關問題