分页 INNERHTML 异常处理

s += "<font style='font-size:12px'> 转到</font> <input type='text'id='gotopage' name='gotopage' value='" + pageNum + "' size='2' /> <input type='button'class='button' value='Go' style='height:14px;' onclick='go();'/>";

     pageAll.InnerHtml = s;

  Common.WebMessage.Show(this, "请您输入正确的页码!"); //前台输出的好方法   page.ClientScript.RegisterStartupScript(page.GetType(),"message", "<script language='javascript' defer>alert('" + msg.ToString() + "');</script>");//Common下的具体操作SHOW内代码详解

最初 GO();方法不被执行

中间想了一堆解决方法:

1.this ClientScript RegisterClientScriptBlock

Page.RegisterClientScriptBlock

后来想想不是JS 的问题;

是 innerHTML输出的时候就没有响应 BUTTON的 ONCLICK 的方法 属性

2.然后又看了下一篇文章。

所以通常为了使 innerHTML 插入的脚本能够在 IE 中正常执行,经常会在欲插入的 HTML 代码字符串的最开始增加一个不可见的元素。如:

<span style="display:none;">span</span><script defer>alert('a1');<\/script>

这样innerHTML就会在第一次HTML输出到浏览器的时候 把这个ALERT 就执行了。

和我所需要的点击的事件还是不一样。

最后:  没想到GO() 方法又可以执行了。

异常原因:1.:有可能 是 缓存的问题

              2:有可能是世界之窗 的IE 内核 的问题

              3:有可能是 innerHtml这个了解不够多。(请看下下一章)

然后

<script type="text/javascript">
   function go(){
   if(typeof(gotopage)!= "undefined"){
window.location.href=  "DefaultTwo.aspx?operationType=11&page=" +document.getElementById('gotopage').value;
   }
   }
   </script>

 

直接跳回来。带着参数

原文地址:https://www.cnblogs.com/mahaisong/p/1983584.html