IFRAME加载JS控制的CSS,请问怎么弄?

Times_ORZ 2011-01-10 11:02:18
主页面
2个Iframe

<body id="main" >
<iframe src="IframeHead.aspx" class="IframeHead"></iframe>
<br />
<iframe name="frameBody" src="IframeBody.aspx" class="IframeBody" marginwidth="0" marginheight="0" id="newFrameBody"></iframe>
</body>


想要加载的JS,在一个单独的JS文件里面
[code=JavaScript]
//改变样式
function changeStyle()
{
var len=document.getElementsByName("tasks");
for(var i=0;i<len.length;i++)
{
var my=document.getElementById(len[i].id).id;
var pid=document.getElementById(my).parentNode.id;
var npid=document.getElementById(pid).nextSibling.id;
var cid="";
$("#"+npid).children("div").each(function(){
cid+=this.id;
});
if(len[i].checked)
{
document.getElementById(cid).className="delLine";

}else
{
document.getElementById(cid).className="";
}
}
}
[/code]

请问我应该怎么调用?
...全文
184 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Times_ORZ 2011-01-11
  • 打赏
  • 举报
回复
不对,错了,有错误。。。 没有出来呢。。
Times_ORZ 2011-01-11
  • 打赏
  • 举报
回复
我+_+ 送分了啊。。。自己写出来了。。
Times_ORZ 2011-01-11
  • 打赏
  • 举报
回复

//改变样式
function changeStyle()
{
var len=document.getElementsByName("tasks");
for(var i=0;i<len.length;i++)
{
var my=document.getElementById(len[i].id).id;
var pid=document.getElementById(my).parentNode.id;
var npid=document.getElementById(pid).nextSibling.id;
var cid="";
$("#"+npid).children("div").each(function(){
cid+=this.id;
});
if(len[i].checked)
{
document.getElementById(cid).className="delLine";

}else
{
document.getElementById(cid).className="";
}
}
}

这个是我的JS,我也页面也都是JSON 出来的,请问为什么,我要是写成onclick就有效..
koukoujiayi 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 pbw68277118 的回复:]
我按照你的写了,没有反应啊..
[/Quote]
这应该不会,你可能js有误!
做了个简单例子:
IframeBody.aspx页面的html代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>

<script type="text/javascript">
function changeStyle() {
document.getElementById("div1").className = "delLine";
}
</script>

<style type="text/css">
.delLine
{
background-color: #ff0000;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div id="div1" style="height: 100px; width: 100px;">
</div>
</form>
</body>
</html>

后台c#代码:
    protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "changeStyle()", true);
}
}

直接运行IframeBody.aspx页面,你可以看到div设置成红色!
Times_ORZ 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 koukoujiayi 的回复:]
前面有点错误,应该是这样的!
如果js是设置IframeBody.aspx页面的,
又如果js是在IframeBody.aspx页面引用,则在IframeBody.aspx页面的Page_Load中这样调用:
if (!IsPostBack)
Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "changeStyle……
[/Quote]
我按照你的写了,没有反应啊..
koukoujiayi 2011-01-10
  • 打赏
  • 举报
回复
onload写在<iframe>中
Times_ORZ 2011-01-10
  • 打赏
  • 举报
回复
是的我引用了, 但是我写onload时间的时候没有作用,在写onclick的时候有用,请问怎么解决?
liulang457 2011-01-10
  • 打赏
  • 举报
回复
IframeHead.aspx,IframeBody.aspx中引用该js文件
koukoujiayi 2011-01-10
  • 打赏
  • 举报
回复
前面有点错误,应该是这样的!
如果js是设置IframeBody.aspx页面的,
又如果js是在IframeBody.aspx页面引用,则在IframeBody.aspx页面的Page_Load中这样调用:
if (!IsPostBack)
Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "changeStyle()", true);

试试!
Times_ORZ 2011-01-10
  • 打赏
  • 举报
回复
求助啊!!!
Times_ORZ 2011-01-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyq11 的回复:]
<iframe name="frameBody" onload="changestyle()"
[/Quote]
我的是IE7不知道有没有影响,我按照你的写了,他没有反应
子夜__ 2011-01-10
  • 打赏
  • 举报
回复
这边有答案了啊
wuyq11 2011-01-10
  • 打赏
  • 举报
回复
<iframe name="frameBody" onload="changestyle()"

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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