永发信息网

asp.net中如何在后台执行js语句:document.getElementById(str1).innerHTML=str2???求大神 在线等

答案:1  悬赏:20  手机版
解决时间 2021-03-24 16:42
  • 提问者网友:自食苦果
  • 2021-03-23 23:35
asp.net中如何在后台执行js语句:document.getElementById(str1).innerHTML=str2???求大神 在线等
最佳答案
  • 五星知识达人网友:几近狂妄
  • 2021-03-24 00:50
你的意思是指,在后台生成这样的语句,然后前台执行吧?.net后台程序是无法直接执行js的,js是客户端脚本啊
不管是写在Page_Load中或业务类库中,都可以使用下面的:
Page page = (Page)HttpContext.Current.Handler;
page.ClientScript.RegisterStartupScript(page.GetType(), "js", "");追问这样语句可以执行几次?? 我后台这句是在一个for循环中的,还有啊 你上面写的这个 id 和str2 是直接写的字符串么?? 如果是变量该怎么写啊? 直接写不需要引号对么??追答要多次执行的话,最好先拼接,然后统一注册脚本
StringBuilder s = new StringBuilder();
for(int i=0;i<10;i++)
s.AppendFormat("document.getElementById('{0}').innerHTML='{1}';",id1,str1);
Page page = (Page)HttpContext.Current.Handler;
page.ClientScript.RegisterStartupScript(page.GetType(), "js", "");
其中id和str可以使用变量来代替,但最终输出后结果要保证是引号括起来的,不然js中会报错,如:"document.getElementById('"+id+"').innerHTML='"+str+"';"追问问题就是 我的这个id是要跟随for循环中的次数决定的,每次执行document.getElementById('"+id+"').innerHTML='"+str+"';都要修改一个标签的内容,追答每次修改的标签内容有规律没?比如id是,id1,id2,id3,id4?如果有规律就好办啊
StringBuilder s = new StringBuilder();
for(int i=1;i<10;i++)
s.AppendFormat("document.getElementById('id{0}').innerHTML='{1}';",i,str);
Page page = (Page)HttpContext.Current.Handler;
page.ClientScript.RegisterStartupScript(page.GetType(), "js", "");
如果没有规律也好办,先把id定义成数组
string[] idarr = { "id1", "abc", "efg", "kkk", "xyyyaf" };
StringBuilder s = new StringBuilder();
for (int i = 0; i < idarr.Length; i++)
s.AppendFormat("document.getElementById('{0}').innerHTML='{1}';", idarr[i], str);
Page page = (Page)HttpContext.Current.Handler;
page.ClientScript.RegisterStartupScript(page.GetType(), "js", "");
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯