2012-03-09 41 views
0

我正在製作GoDaddy Windows服務器上託管的移動版網站。 GoDaddy顯然處理移動子域名的方式是將該網頁放在框架內。例如:
在地址欄中獲取框架src URL

<head> 

</head> 
<frameset rows="100%,*" border="0"> 
<frame src="myurl.com" frameborder="0" /> 
<frame frameborder="0" noresize /> 
</frameset> 

<!-- pageok --> 
<!-- 02 --> 
<!-- --> 
</html> 

的問題是,我在頁面打開的任何鏈接的框架並在地址欄不會改變在URL中打開。所以我的問題是我如何獲取框架網址顯示在瀏覽器的地址欄中。據我所知,GoDaddy不允許我訪問帶有上述html的文件,以允許我修改該文件。每個頁面都有一個初始的php腳本,用來檢查是否需要重定向到移動瀏覽器,所以如果有一種方法可以用PHP來實現,我可以很容易地實現它。

感謝您提供任何幫助。

回答

2

您可以在網頁上完成這個使用JavaScript:

top.location.href = document.location.href; 

這有效地「休息」了父框架由父框架窗口的位置設置爲當前幀的位置。

當然,你會希望有某種指標的,你剛剛爆發的框架,以防止循環:

if (
    (document.location.href.indexOf("#ibrokeout") == -1) && 
    (top.location != location) 
) { 
    // Break out of the frame 
    top.location.href = document.location.href + "#ibrokeout"; 
    } 

希望這有助於。

+0

感謝您的幫助。我現在試過這個代碼,它似乎不工作。我試着用alert()來查看它在2個位置上的讀數,問題似乎與window.parent.location有關。你知道爲什麼會有這個問題嗎? – gdawgrancid 2012-03-09 23:55:18

+0

一些可能有用的信息,我正在瀏覽Firebug頁面的DOM對象,當我從框架中的鏈接轉到另一個頁面時,窗口下的位置元素是前一頁,我不能找到它打印出當前頁面URL的地方(使用螢火蟲搜索功能)。但頁面在框架內顯示正常。 – gdawgrancid 2012-03-09 23:59:54

+0

看起來像我能夠通過檢查document.referrer屬性來完成此操作,因爲這隻會在來自包含移動子域的頁面時纔會發生。 – gdawgrancid 2012-03-10 00:25:07