2010-10-18 38 views
5

我有一個iframe用於將由第三方供應商託管的一些內容吸引到我們的網站。我們正在嘗試確定該內容的高度以調整iframe高度,但我收到了跨站點腳本錯誤。我不知道子域是一個跨站點。有沒有辦法解決這個問題,而不必將它們保留在匹配的子域上?在同一域,不同子域上跨站腳本

作爲參考,我們每週的銷售是通過Flash中的第三方供應商託管,但與子域,同時保持用戶對我們的域的cookie的目的,我們可以重定向到他們。

回答

3

而且看看cross window messaging

這第一頁是發送者 - 它調用的postMessage(發送文本消息),並擁有了iframe在其中容納接收窗口。

<iframe src="http://dev.jquery.com/~john/message/" id="iframe"></iframe> 
<form id="form"> 
    <input type="text" id="msg" value="Message to send"/> 
    <input type="submit"/> 
</form> 
<script> 
window.onload = function(){ 
     var win = document.getElementById("iframe").contentWindow; 
     document.getElementById("form").onsubmit = function(e){ 
       win.postMessage(document.getElementById("msg").value); 
       e.preventDefault(); 
     }; 
}; 
</script> 

後續頁面是接收器 - 它有必然的事件監聽器,手錶的消息被傳遞給它並注入他們的DOM。

<b>This iframe is located on dev.jquery.com</b> 
<div id="test">Send me a message!</div> 
<script> 
document.addEventListener("message", function(e){ 
     document.getElementById("test").textContent = 
       e.domain + " said: " + e.data; 
}, false); 
</script> 
+0

雖然此鏈接可以回答這個問題,最好是在這裏有答案的主要部件,並提供鏈接以供參考。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – VMAtm 2012-11-15 07:07:40

+0

當然..但在這裏我不得不大量從頁面複製到顯示的例子。 – mplungjan 2012-11-15 07:45:40