2009-09-13 59 views
0

我希望有人能幫助我iframe網址的問題,我試圖讓一個頁面的URL中的iframe:的專家

<script language="JavaScript"> 
    function myLocation() { 
     alert(document.all.myFrame.contentWindow.location); 
    } 
</script> 

<button onclick="myLocation();">Location of Frame</button> 

<iframe src="http://www.google.com" width="800" height="600" frameborder="0" 
           scrolling="auto" name="myFrame"></iframe> 

基本上,這會給我的iframe的位置我的網頁,但不給我的google.com網址 - 它也很重要給我的每個頁面的網址,我可以打開谷歌的結果,所以當我在google.com上它應該給我google.com網址,如果我瀏覽到www.facebook.com它應該給我的Facebook網址...

任何想法歡迎!由於

+0

請嘗試編輯您的問題標題來描述更多最新的問題。 – 2009-09-13 17:39:28

+0

作爲一般性建議,我建議您1)將不贊成的**'language =「JavaScript」'更改爲** required ** type =「text/javascript」。 2)不要使用非標準的'document.all';相反,通過'document.forms.myFrame'訪問表單。 3)只能用JS插入「onclick」按鈕,因爲當JS關閉時它沒用並且很混亂。 – kangax 2009-09-13 19:30:43

+0

大衛的回答是對的,這是非常慎重的,你不能這樣做。在不相關的說明中,'contentWindow'是一個非標準的IE擴展。一般來說,您應該使用標準的'contentDocument'屬性,當不可用時(IE 8之前的版本),回落到'contentWindow'。如果你不得不使用'contentDocument.defaultView',那麼要從文檔到窗口獲取文檔 - 視圖與窗口相同的標準並不十分標準,但是在每個支持它的瀏覽器中,它都是。 – bobince 2009-09-14 02:02:28

回答

0

你可能想使用某種JavaScript庫,但我已經使用原始的javascript代碼試圖在deviantart.com此代碼:

document.getElementsByTagName('iframe')[0].src,它給了我結果我期待。

+0

這隻給出了初始頁面的src。它在文檔更改時不更新。 – Quentin 2009-09-13 17:50:10

3

same origin policy阻止訪問其他域上文檔的詳細信息(包括當前URI)。

如果您想要解決此問題,您需要使用網頁以外的內容(例如獨立應用程序或瀏覽器擴展名),或者通過您自己的服務器代理所有請求。

+0

是@David通過自己的服務器代理是一個更好的解決方案。 – TheVillageIdiot 2009-09-13 17:50:36