当图像以 AJAX JSON C# ASPNET 保存时自动关闭窗口浏览器

Posted

技术标签:

【中文标题】当图像以 AJAX JSON C# ASPNET 保存时自动关闭窗口浏览器【英文标题】:Automatically close the window browser when the image is saved in AJAX JSON C# ASPNET 【发布时间】:2021-01-21 14:18:18 【问题描述】:

在我的GridViewC# ASP.NET 4 中,我插入一个按钮来编辑GridView 的行,在这种模式下在浏览器上打开一个新网页

protected void btn1_Click(object sender, EventArgs e)

    ImageButton btn1 = (ImageButton)sender;
    GridViewRow row = (GridViewRow)btn.NamingContainer;
    int oID = Convert.ToInt32(gv.DataKeys[row.RowIndex].Values[0]);

    string queryString = "newpage.aspx?oID=" + oID.ToString();
    string newWin = "window.open('" + queryString + "','_blank');";
    ClientScript.RegisterStartupScript(this.GetType(), "pop", newWin, true);

newpage.aspx 使用AjaxJSON 在此模式下将图像保存在服务器上

<script type="text/javascript">
    $(function () 
        $("#btnSave").click(function () 
            var image = document.getElementById("cc").toDataURL("image/png");
            image = image.replace('data:image/png;base64,', '');
            var qString = "?" + window.location.href.split("?")[1];
            $.ajax(
                type: 'POST',
                url: 'newpage.aspx/oImage' + qString,
                data: ' "imageData" : "' + image + '" ',
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',

                success: function (msg) 
                    alert('Ok');
                ,

                failure: function (msg) 
                    alert(response.d);
                ,

                error: function (msg) 
                    alert(response.d);
                ,

                error: function (xhr, ajaxOptions, thrownError) 
                    alert("error : " + thrownError + JSON.stringify(image));
                
            );
        );
    );
</script>

该过程正常,但我需要在保存图像后自动关闭打开页面newpage.aspx的窗口

我尝试插入另一个按钮来手动关闭newpage.aspx,但窗口没有关闭

在浏览器 IE 11、Edge 和 Chrome 中测试结果不改变窗口不关闭

protected void btnclose_Click(object sender, ImageClickEventArgs e)

    this.ClientScript.RegisterClientScriptBlock(this.GetType(), "Close", "window.close()", true);

有什么建议吗?

感谢您的帮助。

【问题讨论】:

【参考方案1】:

代替服务器端按钮添加客户端按钮,这将完成这项工作

 <button type="button" onclick="closeme()">Close me</button>
    <script>
        function closeme() 
            this.window.close();
        
    </script>

这会有所帮助

【讨论】:

以上是关于当图像以 AJAX JSON C# ASPNET 保存时自动关闭窗口浏览器的主要内容,如果未能解决你的问题,请参考以下文章

使用 AJAX Jquery 以 JSON 格式显示检索到的图像 URL

C# 控制器数据到 JavaScript 但是当使用 RETURN JSON 模态消失/成功后刷新 ajax 模态

asp页面用啥代码接收ajax传过来的json数据

如何构建 JSON 对象以发送到 AJAX WebService?

当我的镜像的基础镜像更新时会发生啥?

当“contentType”为“false”时,使用 Ajax 从 Web 服务返回 JSON 而不是 XML