大家好,我是javascript菜鸟,请教一个问题?下面有一个javascript函数:
         function showLoginPage() {
           if (confirm("确定要退出系统吗?")) {
              
               document.write("<%ExitSystem();%>");
               
               window.location.href = '/Login.aspx';
           }
       }
         为什么我的页面一打开的时候,document.write("<%ExitSystem();%>");就执行了呢?我并没有点击触发该方法的 javascript事件啊?

解决方案 »

  1.   

    看看你的页面哪里调用了showLoginPage() 这个函数。
      

  2.   

      <TD style="BORDER-LEFT: #ffffff 1px solid; CURSOR: pointer" 
                      onclick="javascript:showLoginPage();" >&nbsp;<IMG 
                      style="MARGIN-BOTTOM: -3px" 
                      src="/images/logout.gif">&nbsp;<FONT 
                       color=#ffffff>退出系统</FONT></TD>
      

  3.   

          但是我并没有点击“退出系统”而起当我点击"退出系统"之后,  document.write("<%ExitSystem();%>");这句就没再一次执行了。
      

  4.   

    <%%>
    这里面是服务器代码,不是js代码,是服务器执行的,不是浏览器在执行,
    也不是加载页面的时候,而是加载之前服务器就把它执行了,用其返回值替换掉<%%>发送到客户端,
    所以js调用时使用的是该函数的结果而不是执行该函数js是浏览器代码,要调用服务器函数必须通讯,这能明白么?所以你的方式不是js调用服务器函数,而是让服务器在把html发给客户端前就把该代码执行了
    基础需加强
      

  5.   

           我明白你的意思,就是说。在asp.net第一次请求的时候,<%%>中的内容就在服务器端执行了,然后发送给客户端中的脚步中。以后他不会在执行了。
      

  6.   

         那我还不如直接由一个<body onload>来的快。
      

  7.   

    是的,浏览器只获得了一个字符串,所以使用时只是使用该字符串,并不是调用服务器函数,所以其实你的那句js代码无论执不执行,只要检测到有<%%>写法的代码,都会被服务器执行了