2

我正在製作全屏廣告,通過我無法直接訪問的發佈商網站提供廣告。廣告利用來自iPad的傾斜信息更改廣告上的顏色。一切都可以獨立運行,因爲它是自己的網頁,但是當通過我們的廣告引擎提供服務時,html會顯示爲子窗口對象,而'設備定位'不會在Ad中更新。從子對象收集的iPad方向信息(如Iframe)

我對此很驚訝,因爲傾斜信息確實通過廣告,但是當我嘗試找到父窗口方向時,我得到了js交叉domiain警告。

有什麼我可以做的,讓設備的方向被傳遞給子窗口?或任何明智的解決辦法

感謝

回答

1

的答案取決於域的結構如何。

他們擁有相同的根域

然後是。如果您的父窗口託管在我們的「company.com」上,並且您的子窗口託管在「hifi.company.com」上(反之亦然),那麼通過爲這兩個窗口設置下面的屬性,它們將能夠進行通信。

document.domain = 'company.com'; 

您將不再獲得跨站點腳本行爲,當你做到這一點

parent.onorientationchange = function() { 
    console.log(parent.orientation); 
}; 

他們有不同的根域

然後黯然沒有。您將無法通過子窗口訪問父窗口的方向信息。您可以得到的最接近的是偵聽子窗口本身的大小調整事件。但這取決於iframe的大小以及視口的配置方式。