弹出警告框时,背景变为空白

Posted

技术标签:

【中文标题】弹出警告框时,背景变为空白【英文标题】:When alert box is popped up, the backgroung goes blank 【发布时间】:2014-06-16 11:50:37 【问题描述】:

我的网站在 .net 框架 2.0 中。我正在使用 javascript 提供的警报和确认对话框。

我面临的问题是当弹出警报框时,背景变为空白,用户无法查看他/她正在做什么。

虽然确认对话框没有发生同样的情况。由于我的应用程序是 2.0,因此我无法找到合适的解决方案。

现在我的问题是为什么确认对话框显示背景但警报不显示,我应该进行哪些更改以便在出现警报框的情况下也可以查看背景?

这里是sn-ps的代码:

当我使用下面的确认对话框时,我可以查看背景:

btnDeleteGroup.Attributes.Add("onclick","javascript:return confirm('Are you sure you want to delete this group?');");
btnTemplateDelete.Attributes.Add("onclick","javascript:return confirm('Are you sure you want to delete this template?');");

以下是警报对话框的代码。我希望在我的列表为空时弹出警报框:

private void AddRecipients(String text, ListBox listBox)

    ListItemCollection items = new ListItemCollection();
    AddRecipientToList(text, items);

    // No matching recipients
    if (items.Count == 0)
    
        BrowserMessage("There are no users or groups with this name");         
        return;


// Exactly one match found
if (items.Count == 1)

    listBox.Items.Add(items[0]);
    return;
 

BrowseMessage函数定义如下:

public void BrowserMessage(string Message)

    Message = Message.Replace("\"", "'").Replace(@"\", @"\\").Replace("\n", @"\n");
    OutputJavascript("alert(\""+ Message + "\");");
 

OutputJavascript 定义为:

public void OutputJavascript(String script)

    ScriptBlock js = new ScriptBlock(this);
    js.AddScript(script);
    js.Register();

如果上述问题需要任何额外信息,请告诉我。

这里是设计代码。当用户点击添加收件人按钮时需要弹出警报

<DIV 
STYLE="DISPLAY: inline; Z-INDEX: 100; LEFT: 8px; WIDTH: 72px; POSITION: absolute; TOP: 8px; HEIGHT: 21px" 
MS_POSITIONING="FlowLayout">Subject</DIV>
<DIV 
STYLE="DISPLAY: inline; Z-INDEX: 104; LEFT: 8px; WIDTH: 72px; POSITION: absolute; TOP: 64px; HEIGHT: 21px" 
MS_POSITIONING="FlowLayout">Message</DIV><asp:image id="Image1" style="Z-INDEX: 106;  LEFT: 368px; POSITION: absolute; TOP: 72px" runat="server" ToolTip="Required field"   ImageUrl="..\images\redLed.gif"></asp:image><asp:image id="Image2" style="Z-INDEX: 107; LEFT: 304px; POSITION: absolute; TOP: 40px" runat="server" ToolTip="Required field" ImageUrl="..\images\redLed.gif"></asp:image></DIV>
<DIV CLASS="groupbox" 
STYLE="Z-INDEX: 110; LEFT: 8px; WIDTH: 328px; POSITION: absolute; TOP: 56px; HEIGHT: 248px" 
MS_POSITIONING="GridLayout"><asp:ListBox id="lbRecipients" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 56px" tabIndex="3" runat="server" Width="312px"    CssClass="formtextbox" EnableViewState="False" Height="153px" SelectionMode="Multiple">    
</asp:ListBox>   
 **<asp:Button id="btnRecipientAdd" style="Z-INDEX: 102; LEFT: 216px; POSITION: absolute; TOP: 32px" runat="server" Width="102px" CssClass="formbutton" CausesValidation="False" Text="Add Recipient" EnableViewState="False">    </asp:Button>**

下面是生成的 html

<script language='javascript'> 
function TabStrip1_Click(index)

var f=document.forms[0];
f['TabStrip1_Index'].value=index;
f.submit();

</script>
<script language="Javascript"><!--
alert("There are no users or groups with this name");//--></script>
<script language="javascript"><!--
function showMessage(postValue)

var f=document.forms[0];
f.__MESSAGENUMBER.value=postValue;
f.submit();

//--></script>
<script language="javascript"><!--
function saveRecipients()

listSaveContents('lbRecipients', '__RECIPIENTS');

//--></script>
<script language="javascript"><!--
function addRecipient(sText,sValue)

var op=gE('lbRecipients').options;
op[op.length]=new Option(sText,sValue);

【问题讨论】:

请出示您的 html! 如果我没记错你问这个 你想说什么? 对不起,丹尼尔,我刚刚复制了需要触发事件的按钮后面的代码。我希望这是你想要的东西 生成的html会更好。 【参考方案1】:

您正在执行回发以生成此消息,然后在重新加载时将其呈现到页面中。它是直接内联呈现的,而不是作为一种方法,因此它在页面加载时被调用。因此,在浏览器解析页面以进行渲染时遇到alert,它会显示alert,并暂停进一步的解析和渲染。

您最好将其作为标签放在收件人框下方,然后将消息放入并在回发时将其涂成红色。

【讨论】:

【参考方案2】:

您的 cs 似乎是一种非常奇怪的输出 javascript 警报的方式...试试这个:

public void BrowserMessage(string Message)

    Message = Message.Replace(@"\", @"\\").Replace("\n", @"\n");
    OutputJavascript(Message);
 
public void OutputJavascript(String message)

    string output = @"<script language='javascript'> alert('"+message+"');</script>";
    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "UserPopup", output);

【讨论】:

它不工作。我的背景仍然是空的。

以上是关于弹出警告框时,背景变为空白的主要内容,如果未能解决你的问题,请参考以下文章

当 UIViewController 显示弹出框时,更改 CALayer 颜色与 UIView tintColor 同步

登录界面,body上有背景图,点击输入框时,弹出的手机键盘会把背景图顶变形,而且会把footer顶上去

iOS弹出框如何去除阴影

为啥会出安全警告 错误: 'files.0' 为空或不是对象

PHP----练习----光标离开文本框时变色

用户单击表单文本框时的格式帮助