2012-03-09 63 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