2013-05-13 119 views
2

我知道關於如何從iframe內部重定向父級窗口有幾個問題/答案,但這個問題有輕微的轉折。使用iframe時父級重定向

當iframe中的頁面發生更改時,我需要能夠重定向父窗口。但是,iframe中的頁面不在我的域中,因此我無法使用其他線程中建議的parent.window.location技巧。因此,例如,如果我將stackoverflow.com放在我的iframe中,當用戶單擊stackoverflow頁面上的任何鏈接時,我需要父框架進行重定向。

我懷疑這實際上是可能的,但我認爲可能有某種類型的父母可以做的iframe的輪詢或某事。

回答

1

這有點複雜,但應該做的伎倆。如果你這樣定義你的IFRAME

<iframe id="xMyIframe" src="http://someurl" onload="replaceLoad(this)" ></iframe> 

然後你可以定義一個JavaScript代碼;

function replaceLoad(oIframe) { 
    oIframe.onload = function() { 
    location.href = 'http://www.microsfot.com' 
    } 
} 

在初始iframe網址inital onload事件處理火災並與新的處理程序下一次裝載即只有在用戶點擊的iframed網頁上鍊接後會觸發代替本身的負荷。

+0

這太好了。但是,我將父項重定向到的URL基於iFrame將要使用的URL,因此不是使用location.href =「microsoft.com」,而是需要使用諸如location.ref = oIframe.location.href之類的內容。不幸的是,這不起作用,不知道什麼是適當的方式? – Jordan 2013-05-13 21:17:50

+0

另外,這樣做的方式是在iframe中加載新頁面,然後重定向父級。除了「onload」事件之外,是否還有其他的方法可以使父級重定向首先發生? – Jordan 2013-05-13 21:19:36

+0

您可以使用'location.href = oIframe.src'來使用iframe源URL。必須查看「之前」的可能性 – 2013-05-13 21:30:04