以前的项目是net2003版本的,升级到2005后,经常发现上述警告,终于有时间好好修改一下了。
从网上看到一些文章,按照上面的方法,还是不对,后来仔细看了错误提示,终于找到适合自己的方法,共享给大家。
旧代码:
page.RegisterStartupScript("WarningHandle" + new Random().NextDouble().ToString(), "<script>try{if(top.document.all('MSAgent').Characters.Character('Merlin').Visible){top.document.all('MSAgent').Characters.Character('Merlin').Stop();" +
"top.document.all('MSAgent').Characters.Character('Merlin').Play('GestureLeft');top.document.all('MSAgent').Characters.Character('Merlin').Speak(/"" + errorMessage.ToString() + "/");}else{alert(/"" + errorMessage.ToString() + "/");}}catch(e){alert(/"" + errorMessage.ToString() + "/");}</script>");
新代码:
clientScript.RegisterClientScriptBlock(page.GetType(), "alert","<script>try{if(top.document.all('MSAgent').Characters.Character('Merlin').Visible){top.document.all('MSAgent').Characters.Character('Merlin').Stop();" +
"top.document.all('MSAgent').Characters.Character('Merlin').Play('GestureLeft');top.document.all('MSAgent').Characters.Character('Merlin').Speak(/"" + errorMessage.ToString() + "/");}else{alert(/"" + errorMessage.ToString() + "/");}}catch(e){alert(/"" + errorMessage.ToString() + "/");}</script>");
当然,clientScript要进行实例化,否则会报对象引用的错误。