//重载DOM里的confirm
<script language=javascript><!--
/*@cc_on @*/
/*@if (@_win32 && @_jscript_version>=5)
window.confirm = function(str)  //Author: meizz
{
    str=str.replace(/\'/g, "'&chr(39)&'").replace(/\r\n|\n|\r/g, "'&VBCrLf&'");
    execScript("n = msgbox('"+ str +"', 257, '自定的的 confirm')", "vbscript");
    return(n == 1);
}
@end @*/
alert(confirm('1.\'第一行\';\r\n2.第二行;\r\n'));
// --></script>

解决方案 »

  1.   

    也可以像sina,163的游乡那样,用div模拟对话框,这样扩展性还强些
      

  2.   

    div不太好,没有系统弹出窗口那样好,统一风格考虑
      

  3.   

    //重载DOM里的confirm
    <script language=javascript><!--
    //预处理
    /*@cc_on @*/
    //判断系统和jscript版本
    /*@if (@_win32 && @_jscript_version>=5)
    window.confirm = function(str)  //Author: meizz 重定义confirm函数
    {
        str=str.replace(/\'/g, "'&chr(39)&'").replace(/\r\n|\n|\r/g, "'&VBCrLf&'");//这句俺不会
        execScript("n = msgbox('"+ str +"', 257, '自定的的 confirm')", "vbscript");//执行VB函数
        return(n == 1);
    }
    @end @*/
    alert(confirm('1.\'第一行\';\r\n2.第二行;\r\n'));
    // --></script>我要把有限的生命投入到无限的为人民回贴事业中去!
    谁会申请域名?帮我申请一个,最好是www.meixx.com/net/org,不要二级和三级的!
    还有好的免费空间,谁知道?帮忙啊!
      

  4.   

    这句话,最主要的在于257,这个
    是256+1
    256就是默认选第二个按钮
    而1是取消的按钮总的思路是由VBSCRIPT代替JAVASCRIPT弹出
      

  5.   

    str=str.replace(/\'/g, "'&chr(39)&'").replace(/\r\n|\n|\r/g, "'&VBCrLf&'");//这句俺不会---------------------------------
    这句的意思是把'转成两个''
    把\n \r就是回车换行转成 vb里的
    &vbcrlf原因是在vb里''代表' ,&vbcrlf就是回车换行
    这个只是界面上的一些为了好看,没什么实际效果
      

  6.   

    sorry,没仔细看第一个覆盖是由于要把字符串连接起来才做的覆盖
      

  7.   

    简单一点的<script language=vbscript>
    function vvv()
    Dim MyVar
    MyVar = MsgBox ("Hello World!", 257, "MsgBox Example")
       ' MyVar contains either 1 or 2, depending on which button is clicked.
    end function
    </script>
    <script language=javascript>
    var v=vvv()</script>
      

  8.   

    TO: clare2003(忘情火) 你找一个非IE的浏览测试一下你这段代码吧。
      

  9.   

    既然想统一风格
    那就让它默认值是confirm,而不要让它是cancel