遇到以下问题:
我有一个HTML按钮,它会导致__doPostBack(button.ClientID,' texthere')。
Dim button As HtmlButton
button = CType(Me.btnButton, HtmlButton)
button.Attributes.Add("onclick", "__doPostBack('" & btnButton.ClientID & "', 'btnBBHistory');return false;")
在我的page_load中,我有以下内容:
Dim control_postback = Request("__EVENTARGUMENT")
If control_postback = "texthere"
Page.ClientScript.RegisterStartupScript(Me.GetType(), "Script", "ShowWindow();",
End If
ShowWindow();使用showModalDialog显示javascript函数。
Dim s As New StringBuilder
s.Append("<script type=""text/javaScript"">")
s.Append("function ShowWindow() {" & ControlChars.CrLf)
' s.Append("var result = window.showModalDialog('" & url & "','','dialogWidth:1200px;dialogHeight:450px;resizable:yes');" & ControlChars.CrLf)
s.Append("var result = window.showModalDialog('" & url & "','','dialogWidth:1100px;dialogHeight:500px;resizable:yes;help:no;');" & ControlChars.CrLf)
s.Append("if (result) { " & ControlChars.CrLf)
' s.Append("document.getElementById('" & lblwhatever.ClientID & "').innerHTML=result.fullline;" & ControlChars.CrLf)
s.Append("if (result.text.length || result.quantity.length) { " & ControlChars.CrLf)
s.Append("document.getElementById('" & txtwhatever.ClientID & "').value=result.text.concat(result.quantity);" & ControlChars.CrLf)
s.Append("document.getElementById('" & txtqty.ClientID & "').value=result.quantity;" & ControlChars.CrLf)
s.Append("__doPostBack()" & ControlChars.CrLf)
s.Append("}" & ControlChars.CrLf)
s.Append("}" & ControlChars.CrLf)
s.Append("return false;" & ControlChars.CrLf)
s.Append("}" & ControlChars.CrLf)
s.Append("</script>")
If Not ClientScript.IsClientScriptBlockRegistered("ShowWindow") Then
ClientScript.RegisterClientScriptBlock(Me.GetType(), "ShowWindow", s.ToString())
End If
这一切都正常,并显示带有生成的URL的对话框。但是,在原始网页(最初点击按钮以生成此对话框的网页)上,有一个图像(.djvu格式)。每当我的代码运行时,原始页面都会因为__doPostBack()而刷新,但在IE的某个版本(IE8和9到目前为止)中,图像不会重新加载。 showModalDialog是否有可能阻止在这些IE版本的后台进一步呈现页面,或者doPostBack()实际上没有以某种方式完成回发并且图像正在破坏?
感谢您提供的任何帮助
答案 0 :(得分:0)
修正:我需要使用window.open而不是showmodaldialog,因为当使用showmodaldialog时,父/调用页面是(我相信)暂停/暂停/中断父页面的执行,直到子页面关闭为止