2011-09-06 68 views
9

我有一個iframe和從iframe訪問父框架功能的Javascript頁面。這些頁面在同一臺服務器上(它不是跨域腳本),我對FF和IE沒有任何問題,但是當我在Chrome上使用它時,我在下面顯示了這條消息。不安全的JavaScript嘗試訪問框架與URL

不安全JavaScript嘗試與URL http://samedomain:51700/irj/servlet/prt/portal/prtroot/CRMApp73.StoricoApp 從幀幀訪問使用URL http://samedomain:51700/irj/servlet/prt/portal/prtroot/CRMApp73.CRMOProxy。 域,協議和端口必須匹配。

我該如何解決這個問題?我從谷歌搜索4小時以來。我希望有一個人可以幫助我。

編輯:代碼

這是JavaScript在iframe頁面。這個JavaScript調用一個父框架JavaScript函數「setUfficioPostale」。這是Chrome給我「不安全訪問...」錯誤的地方。

<script> 
    window.parent.setUfficioPostale(map); 
</script> 

這是表單提交的父框架中的Javascript。這是爲了將帶隱藏參數的隱藏表單發送到加載到iframe中的頁面。

function onAltroUfficioClick(){ 
    document.getElementById("hiddenParams").submit(); 
    $('#framePosteMaps').show(); 
} 

這是父頁面中的iframe定義。

<iframe id="framePosteMaps" scrolling="no" name="framePosteMaps"></iframe> 

這是目標屬性的表格發送參數的iframe頁面。

<form id="hiddenParams" target="framePosteMaps" action="http://samedomain:51700/irj/servlet/prt/portal/prtroot/TestFrameRC.SimPerProxy" method="POST"> 
    <input type="hidden" name="distanza" value="10"> 
    <input type="hidden" name="cliente" value="Retail"> 
    .................... 
</form> 
+0

你能告訴我們一些代碼嗎? – UpHelix

+0

儘管它聽起來應該不是必須的,但是可能將parent和iframe中的「document.domain」設置爲相同的值會使其變爲正常工作? –

+0

注意:如果你的同名域是'foo.somedomain.com'和'bar.somedomain.com',它們不一樣。 – c69

回答

2

Chrome不允許你這樣做。來自Iframe的代碼無法訪問父代碼。

2

首先,檢查這兩個網頁被引用使用iframe的SRC ATTR以完全相同的方式,我的意思是:

http://samedomain:51700/irj/ 
http://samedomain:51700/irj/ 

東陽這是可能的,即使他們在同一個運行機,那些iFrame中的一個被稱爲等:

http://localhost:51700/irj/ 

另:

http://MachineId:51700/irj/ 

或任何其他組合。

您可以通過在所有現代瀏覽器中使用開發人員工具檢查代碼來檢查它。

如果Chrome瀏覽器處於同一個域中(我每天都這樣做),Chrome允許您調用父項功能,所以不會出現任何問題。

我用這個功能來存取權限孩子的iFrame:

var getIframe = function (id) { 
    if ($.browser.mozilla) return document.getElementById(id).contentWindow; 
    return window.frames[id]; 
}; 

,公正「的parent.yourParentFunction()」當你想在父訪問功能。

檢查父的功能被分配到Window對象(全局命名空間)

祝你好運:-)

+3

請注意:測試瀏覽器類型/版本不是一個好習慣。測試功能的可用性,而不是! –

1

父框架可能已設置從「導航特殊」不同document.domain的值。 將iframe js中的document.domain屬性更新爲父框架中設置的值,它應該可以工作。

+2

請在回答中提供一些示例代碼。 –

相關問題