请教大家,如何跨框架取值?

铁血男儿007 2010-01-26 03:50:38
有一个页面Default.aspx,里面采用了frameset框架布局,分成左右两部分,左边套了一个left.aspx,右边套了一个right.aspx,其中在left.aspx中有一个div(runat=server),里面包了一些其它的控件,在right.aspx中有一个Button按钮,我现在希望通过点击右边的这个按钮,来控制左边的div是否显示,但是因为它们分别在两个不同的页面里,我在right.aspx中无法获取到div标记的ID,所以想请教大家,有没有什么办法能够实现这个效果?

前提是框架布局不能被改变,因为要兼顾到其它功能,所以不能使用母版页
...全文
241 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
铁血男儿007 2010-01-26
  • 打赏
  • 举报
回复
问题已经解决,多谢阿非兄的帮助,圆满结帖!
阿非 2010-01-26
  • 打赏
  • 举报
回复
document.getElementById('divMessage')

我没有写成这种方式的原因是 因为是.aspx 页 ID divMessage 可能会改变

---------------------------------------------------

从软件工程的角度 现在的写法高内聚。

阿非 2010-01-26
  • 打赏
  • 举报
回复
FRAMESET.html

<FRAMESET COLS="25%, 75%">
  <FRAME name='left' SRC="1.html">
  <FRAME name='right' SRC="2.html">
  </FRAMESET>

1.html

<HTML>
<HEAD>
<TITLE>1</TITLE>
<script>
var isShow=true;
</script>

</HEAD>

<BODY>
<input type='button' onclick='isShow=!isShow;parent.right.change(isShow);isShow?this.value="显示":this.value="隐藏";' value='隐藏' />

</BODY>
</HTML>

2.html

<HTML>
<HEAD>
<TITLE>2</TITLE>
<script>
function change(isShow)
{
document.getElementById('div').style.display=isShow?'':'none';
}
</script>
</HEAD>

<BODY>
<div id='div'>
div
</div>
</BODY>
</HTML>
sunhahaha2 2010-01-26
  • 打赏
  • 举报
回复
楼上的厉害, 的确用
parent.frames['MyPage2'].document.getElementById("testDiv").style.display = 'none';

parent.MyPage2.document.getElementById("testDiv").style.display = 'none';
都可以得到那个div
铁血男儿007 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 sandy945 的回复:]
sorry ~

try

parent.rightFRAMEName.fnName
[/Quote]
还是不太明白,请Sandy945兄详细地介绍一下,同时再请帮我看看,我写的那段代码是否正确,为什么点击以后没有反应呢?
阿非 2010-01-26
  • 打赏
  • 举报
回复
sorry ~

try

parent.rightFRAMEName.fnName
铁血男儿007 2010-01-26
  • 打赏
  • 举报
回复
我自己是这么写的:

Button按钮(Html控件,不是Web控件),点击触发一个show()事件,js内容如下

parent.frames["leftFrame"].item.document.getElementById('divMessage').style.display == "none";

但还是不对,点击了以后没反应,所以我很郁闷
铁血男儿007 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sandy945 的回复:]
在left.aspx 页定义一个 js 方法 是控制 div 的显示与隐藏

在right.aspx 中

通过

parent.document.fnName 访问
[/Quote]

我用parent.document.fnName 访问不了,为什么?
sunhahaha2 2010-01-26
  • 打赏
  • 举报
回复
抱歉, 看错楼主的问题了, 忽略我1楼和2楼的回答吧

3楼的parent.document.fnName 访问
知道是什么意思?
qawszx 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sandy945 的回复:]
在left.aspx 页定义一个 js 方法 是控制 div 的显示与隐藏

在right.aspx 中

通过

parent.document.fnName 访问
[/Quote]
holder273 2010-01-26
  • 打赏
  • 举报
回复
如果没关系的话存session(当然不推荐这样)
wl19821201 2010-01-26
  • 打赏
  • 举报
回复
top.window.frames.headerFrame.location.reload();

阿非 2010-01-26
  • 打赏
  • 举报
回复
在left.aspx 页定义一个 js 方法 是控制 div 的显示与隐藏

在right.aspx 中

通过

parent.document.fnName 访问
sunhahaha2 2010-01-26
  • 打赏
  • 举报
回复
如果是因为runat=server而用getElememtById得不到的话, 用下面的试试
parent.document.form1.testDiv.style.display = 'none';
sunhahaha2 2010-01-26
  • 打赏
  • 举报
回复
试试看在right.aspx里写下面的脚本, 能不能取到这个div
parent.document.getElementById("testDiv").style.display = 'none';

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧