Javascript函数在Safari 5.1.7中无法正常工作

时间:2012-11-05 15:21:45

标签: javascript asp.net safari

在Access.aspx的加载中调用javascript函数。

<head>
<title>access</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<link href="rtsBanner.css" type="text/css" rel="stylesheet">

<script language="JavaScript" type="text/javascript" src="winopen.js"> </script>

<script type="text/javascript" language="javascript">
    function openLogin(site, pass) {
        var loginUrl = 'login.aspx';
        if (site != '' && pass != '') {
            loginUrl += '?SITE=' + site + '&PASS=' + pass;
        }
        else if (site != '') {
            loginUrl += '?SITE=' + site;
        }
        var popUpFeatures = 'dialogHeight: 385px; dialogWidth: 600px; edge: Raised; center: Yes; help: No; resizable: No; scroll: Yes; status: No;';
        var RetVal = window.showModalDialog(loginUrl, 'null', popUpFeatures);
        if (typeof (RetVal) == 'undefined') {
            top.window.close();
        }
        else {
            var RetArray = RetVal.split(',')
            var ValidLogon = RetArray[0];
            var MUName = RetArray[1];
            if (ValidLogon == 1) {
                document.location.href = 'newRequest.aspx?desc=' + MUName;
            }
            else {
                top.window.close();
            }
        } // else(typeof(RetVal)
    }
</script>

</head>
<body ms_positioning="GridLayout" onload="openLogin('<%=Request("SITE")%>','<%=Request("PASS")%>');">
<form id="Form1" method="post" runat="server">
&nbsp;
</form>
</body>
</html>

此代码在IE中完美运行但在登录屏幕上的safari中输入网站名称和密码并点击登录按钮后,它不会将我重定向到newRequest.aspx页面而只是关闭登录弹出窗口并显示空白访问权限.aspx页面。

Editted:

这是关于Login.aspx.vb页面上的btnLogin_Click的代码

If txtSiteName.Text = "" And txtPassPhrase.Text = "" Then Return
        If ValidateSiteAndPass(txtSiteName.Text, txtPassPhrase.Text) = False Then
            Throw New Exception("OOPS!!! Either SiteName or Pass Phrase is Invalid, please check")
        Else
            Session("valid") = "true"
            Response.Write("<script language='javascript'>{window.returnValue='1," + txtSiteName.Text + "'; self.close();}</script>") '''document.Form1.submit();")
            Response.End()
        End If

请建议

谢谢, 卡维塔

1 个答案:

答案 0 :(得分:0)

我在这里找到了解决方案。

http://forums.asp.net/t/1400811.aspx/1

问题是由于window.showModalDialog造成的。它在Safari中无法正常工作..我用window.open

替换它

谢谢, 卡维塔