首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >服务器端加入自动运行的JS代码

服务器端加入自动运行的JS代码

作者头像
用户1075292
发布2018-01-23 11:24:10
1.9K0
发布2018-01-23 11:24:10
举报
文章被收录于专栏:听雨堂听雨堂

          本来不是一个很复杂的事情,就是想通过服务器的代码,控制客户端加载时运行一个js函数。却折腾了一个早上,首先是用

          page.ClientScript.RegisterClientScriptBlock(typeof(string), "FomrJS", js);

          这个js块将放在</form>之前,并在window.onload之前运行。假如不是复杂的代码的话,如alert之类,完全没有问题。但我用到的js函数刚好比较复杂,结果每次都报错。把代码复制出来,把js块挪到</form>和</body>之间,就ok。所以,考虑怎样把js块放到</form>之外。

           找到一个可以加到<head>标签的方法:

            //加入head
             HtmlGenericControl Include2 = new HtmlGenericControl("script");
             Include2.Attributes.Add("type", "text/javascript");
             Include2.InnerHtml = js;
             page.Header.Controls.Add(Include2);

            但是,却无法访问body或者document对象,只能访问form对象,对应的是form标签,或者page.controls,却把代码加到</body>之外了。

            只好测试onload方法,但我不想每次手工给页面的body标签加onload,希望能够纯粹用服务器方式写这个事件处理,结果仍然由于无法访问body标签,无法成功。

          最后的方法,是用RegisterClientScriptBlock,执行一个代码,指定事件的处理,如下:

          page.ClientScript.RegisterStartupScript(typeof(string), "FomrJS", "window.attachEvent('onload', function(){alertWin('标题dfadsa','这里是内容',300,200);})", true);

或者

          page.ClientScript.RegisterStartupScript(typeof(string), "FomrJS", "document.body.onload=function(){alertWin('标题dfadsa','这里是内容',300,200);}", true);
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2008-09-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档