【问题标题】:How can I load a page in specific frame?如何在特定框架中加载页面?
【发布时间】:2013-10-29 22:31:07
【问题描述】:

我在一页中有 3 个框架。第 1 帧包含标题,第 2 帧包含菜单,第 3 帧包含页面。当我单击第 2 帧中的链接时,页面正在第 3 帧中加载。但是当我右键单击并使用新标签打开时,如果我只给出该页面正在新标签中加载。我想只用 3 个框架加载该页面,并且该页面应该只在第三个框架中加载。

这意味着如果我以任何方式打开该 url,它必须加载包含 3 个框架的页面,并且指定的页面应仅在第 3 个框架中加载。谁能告诉我我该怎么做?

我的框架标记如下

 <frameset  framespacing="0" rows="140,*">
 <frame id="head" frameborder="0" src="http://localhost:1359/WebSite1/Head.aspx"      name="frame_a" scrolling="no" noresize="noresize"  border="0" onload="framespacing='0'">
 <frameset  framespacing="0" cols="15%,80%">
 <frame id="Menu" frameborder="0" src="http://localhost:1359/WebSite1/Menus.aspx" name="frame_b" >
 <frame id="Page"frameborder="0" src="http://localhost:1359/WebSite1/HomePage.aspx" name="frame_c" style="background-color:White" >
 </frameset>
 </frameset>

【问题讨论】:

  • 发布您的框架集标记。
  • 如果可以的话,放弃框架并使用其他东西。也许是母版页?

标签: c# html asp.net visual-studio-2010


【解决方案1】:

您可以使用锚元素的目标属性在特定框架中打开链接。

<a href="page.html" target="frameid">Link</a>

【讨论】:

  • 是的,当您单击链接时,我已经给它正常工作了。但是,如果我右键单击并在同一个链接上打开,如果我这样做,则单个目标页面正在加载而没有框架页面.那不应该是我的情况。我想加载 3 个框架,如果您右键单击并打开新标签页,则必须在第三个框架中加载 page.html 或 page1.html 等。
【解决方案2】:

&lt;a&gt;(锚点)的target="" 属性就是为此而设计的。

指定框架的 ID,或使用“特殊”目标之一:

  • _blank(新页面)
  • _top
  • _parent
  • _self

更多信息可以在here找到。

【讨论】:

  • 是的,就像我通过点击加载一样...但是右键单击并使用新标签打开怎么办?
  • @Raghuveera:这是客户决定打开一个新标签的决定,因此您无法控制它的处理方式。如果我,作为用户,想要一个新标签中的链接,你是谁(作为网站管理员)阻止我?充其量您可以检查window.top 并在页面加载到框架之外时重新加载框架集。
  • 你是对的。但是,如果您在也包含 2 或 3 帧的 Web 浏览器中打开 mysql。如果您右键单击并打开,打开的页面将在新标签中打开所有框架。这是怎么可能的?
  • 他们最有可能是forcing frames(他们在页面加载时检查top.location == self.location,如果没有,则将它们重定向到母版页)。
【解决方案3】:

请在按钮点击事件(或其他事件)上使用:

Response.Write("<script>window.open('PageName.aspx','FrameName');</script>")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    • 2016-01-26
    • 2013-10-21
    • 2011-07-16
    • 2010-12-06
    • 2014-05-27
    相关资源
    最近更新 更多