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>
直接跳回来。带着参数