编辑:
如果您想显示来自另一个站点的框架,并且您可以控制该其他站点如何发出其 HTML,请按照下面我的原始答案中的说明获取框架以发出超链接target="_top"
。
但是,如果您正在构建一个您无法控制的网站,那么使用框架可能不起作用。相反,您需要使用另一种方法来获取数据。例如,您的服务器应用程序可以使用file_get_contents()
或其他 PHP HTTP 客户端库从远程站点获取数据,然后在您自己的站点内发出数据(不带任何帧)。当然,如果您不拥有远程站点,则需要确保您可以以这种方式重新使用他们的数据。
旧答案(如果您控制框架内的站点,请使用此答案:
解决这个问题的典型方法是将所有框架中的 URL 指向一个新的框架集 URL,target="_top"
在超链接上,通常包含查询字符串参数以告诉框架集页面要加载哪些框架。
例如,假设/frameset.php
有两个框架最初指向/frame1.php
和的框架集/frame2.php
。frame1 内的链接应如下所示:
<a href="/frameset.php?frame1=link_url&frame2=frame2_current_url" target="_top">
link_url
您要加载到该框架中的内容页面在哪里,并且frame2_current_url
是当前加载到 frame2 中的 url(因为您不希望在重新加载页面时更改它)。
然后,您需要更改父框架集的代码以查找这些查询字符串参数并相应地设置每个框架的 URL,如果未提供查询字符串参数,则使用每个框架的默认 URL。确保对您在查询字符串参数中填充的所有 URL 进行 URL 编码。
请注意,您只想对指向您自己网站上的链接的链接执行此魔法。对于指向外部站点的链接,您根本不应该重写 URL,因此您最终会得到以下超链接:
<a href="http://www.externalsite.com/" target="_top">
警告:这种方法实际上只适用于您对生成的所有 URL 有非常严格控制的网站。真正的网站往往有较松的控制,特别是如果您有非开发人员贡献内容或者您通过客户端脚本进行一些导航。