在新的浏览器选项卡上加载新的aspx页面后调用JavaScript函数

Calling JavaScript function after a new aspx page is loaded on a new browser tab

本文关键字:调用 函数 JavaScript 加载 选项 浏览器 aspx      更新时间:2023-09-26

我有一个带有打印按钮的表单,单击会打开一个单独的浏览器选项卡,其中显示Sql Server Reporting Services报告。我还将两个变量传递到这个单独的报告页面。

Protected Sub btnPrint_Click(sender As Object, e As EventArgs) Handles   btnPrint.Click
    Dim VID As Integer
    Dim SID As Integer
    Dim QueryString As String
    Dim dc As New VehicleDataContext(db.ConnectionString)
    Dim oReportPath = From rpt In dc.ReportLists _
                      Where rpt.ReportName = "Vehicle Service Record" _
                      Select rpt.ReportPath
    Dim sURL As String = "ReportViewer.aspx"
    Session.Add("ReportPath", oReportPath.First)
    VID = CInt(Session("VId"))
    SID = CInt(Session("SID"))
    QueryString = "ReportViewer.aspx?ID=" & VID
    QueryString = QueryString & "&SID=" & SID
    Response.Redirect(QueryString)

报告打开时没有问题,但我遇到的困难是JavaScript。

<script type = "text/javascript">
function SetTarget() {
    document.forms[0].target = "_blank";
}
</script>
<script type = "text/javascript">
 var ResetTarget = function () {
   document.forms[0].target = "_self";
        }
</script>

在该按钮的OnClientClick事件中,我添加了代码以强制在新选项卡中打开报告。第二个JavaScript函数是将应用程序重置为默认行为。我在"关闭"按钮下调用了这段代码,但我意识到点击网页上的其他按钮或链接会在新的浏览器选项卡中不断打开我的表单,这是我不想要的。

一旦打印按钮代码成功完成,是否有方法调用此ResetTarget脚本,以便此表单上的其他页面事件不会继续打开新窗口?

提前谢谢。

function SetTarget() {
    document.forms[0].target = "_blank";
    setTimeout(function(){document.forms[0].target = "_self";},300);
}

可以接受吗?