我正在玩ASP.NET Web部件,它有一个“下拉”div.它一直到页面右侧.当我点击它时,它会离开窗户.通常,可视区域外的任何内容都会触发底部滚动条.这怎么可能?
alt text http://i42.tinypic.com/4sejww.png
编辑:它是Internet Explorer 8.下面是带有一些上下文的标记.我认为相关的一个是id = WebPart_wp774658725VerbsMenu.默认情况下,它不显示.当你点击td / span Verbs / span VerbsPopup(它可能是任何)时,它会显示“下拉列表”.在开发人员工具中,我没有看到任何JavaScript附加到这些元素,但如果我调试它,我看到它运行一些.
<TD class=partTitle> <TABLE style="WIDTH: 100%" border=0 cellSpacing=0 cellPadding=0> <TBODY> <TR> <TD style="WIDTH: 100%; WHITE-SPACE: nowrap; CURSOR: move" id=WebPartTitle_wp774658725><SPAN title="Billing Information">Billing Information</SPAN> </TD> <TD style="WHITE-SPACE: nowrap"> <SPAN style="PADDING-BOTTOM: 1px; PADDING-LEFT: 1px; PADDING-RIGHT: 1px; DISPLAY: inline-block; COLOR: white; CURSOR: hand; TEXT-DECORATION: none; PADDING-TOP: 1px" id=WebPart_wp774658725Verbs> <SPAN style="FONT-FAMILY: Marlett; FONT-SIZE: 8pt" id=WebPart_wp774658725VerbsPopup>u</SPAN> </SPAN> <DIV style="DISPLAY: none" id=WebPart_wp774658725VerbsMenu> <TABLE style="BORDER-BOTTOM: white 1px solid; BORDER-LEFT: white 1px solid; BACKGROUND-COLOR: maroon; WIDTH: 100%; BORDER-COLLAPSE: collapse; FONT-FAMILY: Arial; FONT-SIZE: 0.8em; BORDER-TOP: white 1px solid; BORDER-RIGHT: white 1px solid" cellSpacing=0 cellPadding=1> <TBODY> <TR> <TD style="WHITE-SPACE: nowrap"> <DIV> <A class=menuItem title="Deletes 'Billing Information'" onclick="if(document.body.__wpmDeleteWarning.length == 0 || confirm(document.body.__wpmDeleteWarning)){document.body.__wpm.SubmitPage('WebFormDisplay1$MainPageWPZ','delete:wp774658725');}" href="javascript:void(0)"> <IMG style="BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-TOP-STYLE: none; VERTICAL-ALIGN: middle; BORDER-LEFT-STYLE: none" alt="Deletes 'Billing Information'" src="/WebResource.axd?d=5L7XWTaglMPmXRe6NJDkRg2&t=633802513995006876" width=16 height=16> Delete </A> </DIV> </TD> </TR> </TBODY> </TABLE> </DIV> </TD> </TR> </TBODY> </TABLE> </TD> WebParts.js function WebPartMenu_OnClick() { var a = window.event.srcElement.__menu; if (typeof a != "undefined" && a != null) { cancelEvent(window.event); a.Show() } } function WebPartMenu_Show() { if (typeof __wpm.menu != "undefined" && __wpm.menu != null) __wpm.menu.Hide(); var e = "<html><head><style>" + "a.menuItem,a.menuItem:Link { display: block; padding: 1px; text-decoration: none; " + this.itemStyle + " }" + "a.menuItem:Hover { " + this.itemHoverStyle + " }" + '</style><body scroll="no" style="border: none; margin: 0; padding: 0;" ondragstart="window.event.returnValue=false;" onclick="popup.hide()">' + this.menuElement.innerHTML + "<body></html>",b = 16,c = 16; this.popup = window.createPopup(); __wpm.menu = this; var d = this.popup.document; d.write(e); this.popup.show(0,b,c); var a = d.body; b = a.scrollWidth; c = a.scrollHeight; if (b < this.menuLabelElement.offsetWidth) b = this.menuLabelElement.offsetWidth + 16; if (this.menuElement.innerHTML.indexOf("progid:DXImageTransform.Microsoft.Shadow") != -1) a.style.paddingRight = "4px"; a.__wpm = __wpm; a.__wpmDeleteWarning = __wpmDeleteWarning; a.__wpmCloseProviderWarning = __wpmCloseProviderWarning; a.popup = this.popup; this.popup.hide(); this.popup.show(0,this.menuLabelElement.offsetHeight,c,this.menuLabelElement) }
解决方法
确实是createPopup方法可以解决问题.它是Internet Explorer中的专有方法.
见http://msdn.microsoft.com/en-us/library/ms536392%28VS.85%29.aspx.