zoukankan      html  css  js  c++  java
  • 服务器端加入自动运行的JS代码

              本来不是一个很复杂的事情,就是想通过服务器的代码,控制客户端加载时运行一个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);


     

  • 相关阅读:
    2019 Multi-University Training Contest 1
    2019江西省省赛
    2019牛客暑期多校训练营 第二场
    母函数
    树形DP
    蓝桥杯-标题:打印图形
    蓝桥杯-标题:史丰收速算
    蓝桥杯-标题:切面条
    蓝桥杯-标题:李白打酒
    蓝桥杯-标题:啤酒和饮料
  • 原文地址:https://www.cnblogs.com/jetz/p/1293187.html
Copyright © 2011-2022 走看看