打开浏览器后面的窗口

时间:2010-02-05 20:22:55

标签: javascript vb.net

我有一个网站,当一个人去它时,它会检查数据库上的时间戳。如果时间戳超过4小时,则会打开一个弹出窗口,该窗口运行更新数据库的数据库导入/更新子。然后关闭自己。

这样做的原因是它允许浏览者继续他们的业务,而单独的窗口负责更新。

现在这个弹出窗口显示为焦点。 有没有办法让弹出窗口加载到当前浏览器窗口后面,以免入侵用户导航?

这是主窗口的page_load子。

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        Dim connStr As String = ConfigurationManager.ConnectionStrings("SNA_TRT").ConnectionString
        Dim sqlConn As SqlConnection
        sqlConn = New SqlConnection(connStr)

        sqlConn.Open()

        Dim strSQL As String = "SELECT TOP 1 [ID], [LASTREFRESH], [BYWHO] FROM [TRT_db_timer] ORDER BY [ID] Desc "
        Dim cmd As New SqlCommand(strSQL, sqlConn)
        Dim dr As SqlDataReader = cmd.ExecuteReader()

        Dim lastupdate As DateTime
        Dim currenttime As DateTime = Now()

        While dr.Read()
            lastupdate = Convert.ToDateTime(dr(ClearNullDs("LASTREFRESH")))
        End While
        dr.Close()
        sqlConn.Close()

        Dim ts As TimeSpan = currenttime.Subtract(lastupdate)
        Dim dbspan As String = ts.TotalMinutes.ToString()

        Dim dsinceup As Integer = ts.Days.ToString + 1

        'MsgBox(lastupdate)
        'MsgBox(currenttime)
        'MsgBox(dbspan)

        If dbspan > 240 Then
            bodytag.Attributes.Add("onload", "window.open('/trt/admin/importnotice.aspx?DAYS=" & dsinceup & "',null,'height=150, width=350,status=yes, resizable=no, scrollbars=no, toolbar=no,location=no,menubar=no ');")
        End If
    End If
End Sub

2 个答案:

答案 0 :(得分:3)

肯定有更好的方法(比如ajax)。

但要回答你的问题:

function loadpopunder(){
    var popunder=window.open(/* popup window parameters */);
    popunder.blur();
    window.focus(); // focuses the main window.
}

答案 1 :(得分:1)

如果您希望在用户到达网站时进行更新,请使用AJAX或隐藏的iframe。如果您希望每X小时更新一次,无论用户是否访问该站点,请使用CRON作业。弹出一个窗口来执行此操作会使用户恶化。