style.visibility无法在FireFox中运行

时间:2009-11-27 13:33:15

标签: asp.net javascript

我正在使用带面板的aspx页面。我正在使用面板来显示消息框。面板ID是“panMessage”。该面板包含一个按钮标签“隐藏”。我正在使用代码显示面板,但是当用户单击“隐藏”按钮时需要使用JS关闭面板。我已经使用按钮的onclick事件附加了以下代码 -

onclick="javascript:(<%=panMessage.ClientID%>).style.visibility='hidden';"

点击事件在IE中完美运行,但在FireFox中无效。我用google搜索并将代码更改为 -

onclick="javascript:(<%=panMessage.ClientID%>).style.display='none';"

但代码仍无效,即面板不会隐藏在FireFox中,尽管它也可以在IE中使用这个新代码。

有人可以指导我,我做错了吗?

感谢您的合作。

4 个答案:

答案 0 :(得分:4)

首先,visibility hiddendisplay none不一样。前者将使元素消耗与它本来相同的空间,如果它是可见的,而后者则不会。 display: nonevisibility: hidden; position: absolute;

同义

除此之外,您的问题可能是由于您访问元素的方式。请尝试更改为以下内容:

onclick="document.getElementById('<%=panMessage.ClientID%>').style.display='none';"

答案 1 :(得分:4)

在我看来问题出在(<%=panMessage.ClientID%>)

onclick="(<%=panMessage.ClientID%>).style.display='none';"

渲染时会给出类似的内容:

onclick="(panMessage_1).style.display='none';"

您应该输入类似的内容:

onclick="document.getElementById('<%=panMessage.ClientID%>').style.display='none';"

答案 2 :(得分:2)

使用

document.getELementById ( "<%=panMessage.ClientID%>" )检索元素,然后尝试设置显示或可见性属性。

将display属性设置为none,以便控件不占用空格。

答案 3 :(得分:1)

我们真的需要看到实际的HTML输出才能为你调试它。

正确的输出应该如下所示:

onclick="document.getElementById('panMessage').style.display='none';"

请注意,事件处理程序中不需要javascript: