我有这个jQuery方法,我每次加载页面时调用,调整主div的内容(可滚动的):
function resizeMainContent() {
var newSize = jQuery(window).height();
if (window.location.pathname.indexOf("appsportfolio") != -1) {
newSize = newSize - 105;
} else if (window.location.pathname.indexOf("userapp") != -1) {
newSize = newSize - 128;
} else if (window.location.pathname.indexOf("password") != -1
|| window.location.pathname.indexOf("create_user") != -1
|| window.location.pathname.indexOf("create_account") != -1) {
newSize = newSize - 105;
}
if (jQuery.browser.msie)
newSize = newSize + 3;
jQuery("#mainContentPanel").height(newSize);
}
嗯,在chrome和FF上都很棒。但是,在IE上,如果调用此方法,当我右键单击其他div上的并显示一个弹出式面板时,该面板未完全呈现在我按下右键单击的位置但在下方约100px ...如果我取消注释此resizeMainContent函数,右键单击效果很好......
你能建议一个解决方案吗?
感谢。
更新:
- 这是一个问题的屏幕截图:我右键点击第一个Text
,弹出窗口显示在第二个
如果我评论上面的jQuery方法,它就会出现在我按下右键的位置。
我按下右键的div有这个生成的代码(实际上它是使用ice:menuPopup
icefaces组件)
oncontextmenu="Ice.Menu.contextMenuPopup(event, 'j_id1378:sectionContextMenu_sub', 'j_id1378:j_id1401:0:j_id1413:1:j_id1414');return false;"
所以它从他们的源代码中调用了一些javascript方法,这些方法可以正常工作(他们的演示工作完美)所以问题肯定不在他们的javascript代码中......
答案 0 :(得分:0)
我已应用此问题的解决方法是覆盖icefaces Ice.Menu.contextMenuPopup
method并在我的情况下应用-100px,如果当前浏览器是IE。
当然这也意味着oncontextmenu
应该指向我的方法,而不是他们的方法,我做的不是很干净但是......至少this有效... < / p>