.net中在后台执行innerHTML脚本时出错

我在后台注册了脚本ClientScript.RegisterStartupScript(this.GetType(),"aa","<script>show()</scri... 我在后台注册了脚本 ClientScript.RegisterStartupScript(this.GetType(), "aa", "<script>show()</script>");

想执行客户端的脚本show()函数
<script type='text/javascript'>
var state=false;
function show()
{
document.body.style.overflow='hidden';
if(state)
{
assistant.style.display="block";
}
else
{
document.body.innerHTML+="<div id='assistant' style='width:100%; height:100%; position:absolute; left:0px; top:300px; '><table style='width:100%; height:100%;'><tr><td align='center' valign='middle'><div style='position:relative; left:175px; top:35px; width:25px; height:25px; cursor:hand;'><img src='image/quan-jianli1_06.jpg' onclick='hidd()' /></div><iframe style='width:400px; height:194px;' frameborder='0' scrolling='no' src='quan-denglu.html' /></td></tr></table></div>";
state=true;
}
}
</script>
可是运行起来出错
展开
 我来答
kid83
2009-11-10 · TA获得超过2081个赞
知道大有可为答主
回答量:1818
采纳率:0%
帮助的人:1996万
展开全部
<head runat="server">
<title></title>
<script type='text/javascript'>
var state=false;
function show() {
document.getElementById("ParentContainer").style.overflow = 'hidden';
if (state) {
getElementById("assistant").style.display = "block";
}
else {
document.getElementById("ParentContainer").innerHTML += "<div id='assistant' style='width:100%; height:100%; position:absolute; left:0px; top:300px; '><table style='width:100%; height:100%;'><tr><td align='center' valign='middle'><div style='position:relative; left:175px; top:35px; width:25px; height:25px; cursor:hand;'><img src='image/quan-jianli1_06.jpg' onclick='hidd()' /></div><iframe style='width:400px; height:194px;' frameborder='0' scrolling='no' src='quan-denglu.html' /></td></tr></table></div>";
state = true;
}
}
</script>

</head>
<body>
<form id="form1" runat="server">
<div id="ParentContainer">

</div>
</form>
</body>
</html>
FantasyChump
2009-11-10 · TA获得超过3288个赞
知道大有可为答主
回答量:2127
采纳率:0%
帮助的人:2248万
展开全部
因为RegisterStartupScript会在网页加载的时候直接运行的,因此RegisterStartupScript加入的脚本和你实际网页中show所在的位置差别可能会导致不同的问题,当RegisterStartupScript加入的脚本在show之前时,会出现语法错误,无法执行。当RegisterStartupScript加入的脚本在show之后的话,会因为网页没加载完你就更改HTML导致IE出现操作终止的错误。
所以RegisterStartupScript加入的脚本尽量加入当文档加载完成后再操作的语句,这样能避免问题。比如:

ClientScript.RegisterStartupScript(this.GetType(), "aa", "<script>window.onload=show</script>");
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0dcf05474
2009-11-10 · 超过17用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:57.4万
展开全部
ClientScript.RegisterStartupScript(this.GetType(), "aa", "<script>show()</script>");
这个是回为你代码执行后找不到document.body 你可以再body里面加个层写个id 然后用document.getElementById("").innerHTML实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
thejiathe
2009-11-10 · TA获得超过279个赞
知道小有建树答主
回答量:358
采纳率:0%
帮助的人:304万
展开全部
用没用UpdatePanel
用了就删了它
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式