var forward="window.location.href='JavaScript:joincart()'"; 改为:var forward='window.location.href=' + joincart(); 

解决方案 »

  1.   

    楼主可以这样onclick="javascript:goto()"
    然后写一个js<script>
    window.location.href='JavaScript:join()'
    </script>
    看看行否!
      

  2.   

    好复杂啊……你那里直接这样写:
    <input type="button" value="结账" onclick="joincart()"/>
    难道不行吗?
      

  3.   

    2,3楼都不行
    这样,我把代码贴一下吧   
       var xmlhttp;
       //查看购物车的ajax
       function sele()
       {
         xmlhttp = new XMLHttpRequest();
         
         xmlhttp.onreadystatechange=callback;
         
         xmlhttp.open("post","join.do?isbn=sele",true);
         
         xmlhttp.send(null);
         
       }  
       
       //向购物车内添加数据的AJAX
       function join()
       {
         
         var isbn=document.getElementById("isbn");
         var is=isbn.innerHTML;
         
         
         xmlhttp = new XMLHttpRequest();
         
         xmlhttp.onreadystatechange=callback;
         
         xmlhttp.open("post","join.do?isbn="+is,true);
         
         xmlhttp.send(null);
       }
       
       function callback()
       {
          var word=document.getElementById("word");
          word.innerHTML="购物车内商品";
          //得到两个div对象,并且修改显示方式
          var onebook=document.getElementById("onebook");
          onebook.style.display="none";
          var joinbook=document.getElementById("joinbook");
          joinbook.style.dispaly="block";
          
          
          var info=xmlhttp.responseText;
          
          //定义一个变量用于定义总价
          var sumprice=0;
        
          
          
          if(info=="购物车内没有任何商品!")
          {
           joinbook.innerHTML="购物车内没有任何商品!";
          }else
          {
              var forward="window.location.href='JavaScript:joincart()'";
          //目前已经得到值
          //如果info包含&符号,那么说明,有2个或2个以上的书籍信息在session中
          //如果info中不包含&符号,那么说明,只有一个书籍信息在session中
          if(info.indexOf("&")!=-1)
          {
            var books=info.split("&");
            //定义一个变量,用于存放将要innerHTML里的字符串
            var ss='<table cellSpacing=0 cellPadding=0 width=590 border=1><tr align="center"><td>书籍名称</td><td>数量</td><td>价格</td><td>小计</td></tr>';
           for(var i=0;i<books.length-1;i=i+1)
           {
              var bookone=books[i].split("|");
              ss+='<tr align="center"><td>'+bookone[0]+'</td><td>'+bookone[2]+'</td><td>'+bookone[1]+'</td><td>'+parseInt(bookone[2])*parseFloat(bookone[1])+'</td></tr>';
              sumprice+=parseInt(bookone[2])*parseFloat(bookone[1]);
           }
           ss+='<tr><td colspan="4" align="right">'+sumprice+'</td></tr></table><br/><br/>';
          
           ss+='<h4 align="center"><a href="disbooks.do">继续购物</a><br /><br /><input type="button" value="结账" onclick="'+forward+'"/></h4>';
           joinbook.innerHTML=ss;
          
          }else
          {
            
           var sigle='<table cellSpacing=0 cellPadding=0 width=590 border=1><tr align="center"><td>书籍名称</td><td>数量</td><td>价格</td><td>小计</td></tr>';
           var book1=info.split("|");
           sigle+='<tr align="center"><td>'+book1[0]+'</td><td>'+book1[2]+'</td><td>'+book1[1]+'</td><td>'+parseInt(book1[2])*parseFloat(book1[1])+'</td></tr>';
           sumprice+=parseInt(book1[2])*parseFloat(book1[1]);
           sigle+='<tr><td colspan="4" align="right"><b>总计</b>:'+sumprice+'</td></tr></table><br/><br/>';
           sigle+='<h4 align="center"><a href="disbooks.do">继续购物</a><br /><br /><input type="button" value="结账" onclick="'+forward+'"/></h4>';
           joinbook.innerHTML=sigle;
          }
          
          }
          
          function joincart()
          {
                alert("ddddd");
           var joinbook=document.getElementById("joinbook");
           joinbook.style.display="none";
          
           var card=document.getElementById("card");
           card.style.display="block";
          
          }
          
          
          
       }
      

  4.   

    怎么会不行呢
    试试
    var forward="joincart();"; 
     
    为什么会发生这个事情
    ' <h4 align="center"> <a href="disbooks.do">继续购物 </a> <br /> <br /> <input type="button" value="结账" onclick="'+forward+'"/> </h4>'
    这个字符串你使用了'做为外层边界
    而上面你使用'作为普通字符串.明白了吧
    var forward="window.location.href='JavaScript:joincart()'"; 你一会用'做外边界,一会用"做外边界.......不要这样.选"做外边界比较好些其实.
      

  5.   

    把你的代码从头到尾检查下,做个统一,浏览器都被你搞晕了.
    ' <h4 align="center"> <a href="disbooks.do">继续购物 </a> <br /> <br /> <input type="button" value="结账" onclick="window.location.href='JavaScript:joincart()'"/> </h4>';你看看上面的匹配,浏览器最先找到了' <h4 align="center"> <a href="disbooks.do">继续购物 </a> <br /> <br /> <input type="button" value="结账" onclick="window.location.href='
    然后又找到了'"/> </h4>'
    同时这个地方你又是dhtml,浏览器会做,隐身的html对象装换,兼容了一些错误
    建议先把模版做好,让后在填值,不要大量的innerHTML=具体的html代码/
      

  6.   

    我很奇怪的是,为什么firbug会提示出那样的错误~~
    joincart is not defined 
      javascript:joincart()()() 
      

  7.   

    估计是浏览器被搞晕的问题,因为你的JavaScript:joincart()相当于不是字符串,具体原因见5楼,这样它被当成了代码块,ff试图解释它可能这个解析就出错了
    结贴很简单,点击
    我要提问,帖子加分,结帖去.管理菜单
    中的结贴去按钮,右侧可以为回帖人分派分数,分完分后,点击确认 即可.好的信誉,赢来更多的人气.
      

  8.   

    我自己变换思路解决了此问题
    我没有再使用字符串拼接的方式去向div里添加内容
    而是把有问题的内容直接写在页面的一个div里面,load的时候隐藏,而在javascript里面再显示