大家好,我在为返回按钮添加OnClick的时候,使用了history.go(-1),但是却不起作用,history.back()和window.location='url'也不起作用,但是alert(''),confirm('')却能够使用,不知道是什么原因呢?难道在c#中使用javascript有什么限制吗?谢谢返回按钮:
<asp:Button ID="btnBack" Text="返回" Runat="server"></asp:Button>
.cs代码如下:
this.btnBack.Attributes.Add("OnClick","javascript:history.go(-4);");
起作用的alert()如下:
this.btnBack.Attributes.Add("OnClick","javascript:alert('ok');");

解决方案 »

  1.   

    this.Button1.Attributes["onClick"] = "return window.history.back(-1);";
      

  2.   

    C#跟javascript是两回事。C#的目的是在服务器生成html文档。javascript是服务器生成的html文档中包含的客户端执行的代码。你访问你的网页,按右键-->“查看源文件”。
      

  3.   

    只有地址栏才需要javascript:前缀。onclick事件里面本身就是javascript语句,不能加javascript:前缀。
      

  4.   

    都不行啊,我查看源文件,在按钮里都加了onclick事件了啊
    第一次加载页面时候:
    <input type="submit" name="btnBack" value="返回" id="btnBack" OnClick="history.go(-1);" />
    点返回后还是当前这个页面,不过变成
    <input type="submit" name="btnBack" value="返回" id="btnBack" OnClick="history.go(-2);" />
    再点还是当前页面,变成
    <input type="submit" name="btnBack" value="返回" id="btnBack" OnClick="history.go(-2);" />
    再点还是如此
    <input type="submit" name="btnBack" value="返回" id="btnBack" OnClick="history.go(-2);" />
    再点,就回去了,不过是回到n步以前了...!-_-我在.cs中pageload里的 代码
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    this.btnBack.Attributes.Add("OnClick","history.go(-1);");
    if(Page.IsPostBack)
    {
    this.btnBack.Attributes.Add("OnClick","history.go(-2);");
    }
      

  5.   

    //试试
    this.btnBack.Attributes.Add("OnClick","history.go(-2);return false;");或者你这个,根本不应该用服务器控件。直接这样写:
    <input type="button" value="返回" OnClick="history.go(-1);" />
      

  6.   

    Button1.Attributes.Add("onclick","window.history.back();return false");
      

  7.   

    谢谢 鼠神老大,this.btnBack.Attributes.Add("OnClick","history.go(-2);return false;");是对的