我有一個iframe用於將由第三方供應商託管的一些內容吸引到我們的網站。我們正在嘗試確定該內容的高度以調整iframe高度,但我收到了跨站點腳本錯誤。我不知道子域是一個跨站點。有沒有辦法解決這個問題,而不必將它們保留在匹配的子域上?在同一域,不同子域上跨站腳本
作爲參考,我們每週的銷售是通過Flash中的第三方供應商託管,但與子域,同時保持用戶對我們的域的cookie的目的,我們可以重定向到他們。
我有一個iframe用於將由第三方供應商託管的一些內容吸引到我們的網站。我們正在嘗試確定該內容的高度以調整iframe高度,但我收到了跨站點腳本錯誤。我不知道子域是一個跨站點。有沒有辦法解決這個問題,而不必將它們保留在匹配的子域上?在同一域,不同子域上跨站腳本
作爲參考,我們每週的銷售是通過Flash中的第三方供應商託管,但與子域,同時保持用戶對我們的域的cookie的目的,我們可以重定向到他們。
從您的子網域,你可以(有一些例外)設置域名,允許在相同的主域的其他子域更廣的訪問。
看看這個頁面: http://www.tomhoppe.com/index.php/2008/03/cross-sub-domain-javascript-ajax-iframe-etc/
這第一頁是發送者 - 它調用的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>
我的工作不同意這個馬上供應商,但我測試了這一點,它的工作,所以我知道這至少工作。謝謝! – XOPJ 2010-10-19 12:14:43