我有一個框架,由兩個框架組成的頁面;頂部框架和底部框架。頂部框架有一個帶有子菜單的菜單。我遇到的問題是底部框架不允許子菜單按照他們的意願下降。我可以擴大頂部框架的大小,但管理層不希望這樣做。由於看起來不可能讓下拉菜單在底部菜單上流動,所以我能想到的使其工作的最佳方式是在展開頂部框架的同時隱藏底部框架。但這只是理論。在此之前,我從未使用過asp.net或框架,說實話,我不確定它是否會起作用。試圖隱藏一個框架與jquery菜單被懸停時
沒有爲框架和框架單獨的頁面,它看起來像這樣:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="dhss.mohsaic.webapplication.mohsaic.DefaultFrameset" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html>
<head>
<title>MOHSAIC</title>
<link rel="shortcut icon" href="/Images/bavicon.ico"/>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0" />
<meta name="CODE_LANGUAGE" content="Visual Basic 7.0" />
<meta name="vs_defaultClientScript" content="JavaScript" />
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5" />
</head>
<frameset border="0" framespacing="0" rows="95,*" name="frameset" class="frameset" id="frameset">
<frame src="<%=HeaderFrameURL%>" scrolling="no" frameborder="0" noresize="noresize" name="fraHeader" />
<frame src="<%=EntireBodyURL%>" scrolling="auto" frameborder="0" noresize="noresize" name="fraEntireBody" id="bottomFrame" />
</frameset>
</html>
菜單,這在一個單獨的文件是對的HTML:
<div>
<table id="tblAreaTabs" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px;
margin: 0px; padding-top: 0px" cellspacing="0" cellpadding="0" width="100%" border="0">
<tbody>
<tr>
<td class="DarkHeader" width="100%" bgcolor="#000000">
<asp:Menu ID="mainMenu" Runat="server" Orientation="Horizontal"
DynamicMenuItemStyle-CssClass="ChildLink" StaticMenuItemStyle-Font-Underline="true" StaticMenuItemStyle-CssClass="ParentLink" StaticEnableDefaultPopOutImage="false"
style="text-align:center;filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='black', Positive='true');">
</asp:Menu>
</td>
<td valign="middle" class="DarkHeader">
<asp:HyperLink ID="hlError" runat="server" NavigateUrl="DssStatus.aspx" Target="fraDssStatus"
ImageUrl="/images/error.gif" BorderWidth="0px" Height="15px">The connection to DSS is not available.</asp:HyperLink><asp:HyperLink
ID="hlWarn" runat="server" NavigateUrl="DssStatus.aspx" Target="fraDssStatus"
ImageUrl="/images/warn.gif" BorderWidth="0px" Height="15px">The connection to DSS is partially available. </asp:HyperLink>
</td>
</tr>
</tbody>
</table>
</div>
子菜單是根據用戶的登錄憑據動態創建的
我嘗試了幾種方法來做我想做的事情。首先是增加的onmouseover =「whileHovering()」到ASP:菜單標籤,並添加以下的javascript:
var origCols = null;
function whileHovering() {
//alert("Yes, I'm working");
if (origCols !== null)
showFrame();
else
hideFrame();
};
function hideFrame() {
var frameset = parent.document.getElementById("frameset");
origCols = frameset.rows;
frameset.rows = "120, 0";
};
function showFrame() {
document.getElementById("frameSet").rows = origCols;
origCols = null;
};
但是,這並不工作。我收到錯誤'無法讀取屬性'行'的空。調查後,框架集爲空,我做的任何事情都不會改變這一點。於是我放棄了這條道路上,並嘗試:
(function() {
alert("I have entered the function")
$('#mainMenu').hover(function() {
alert('hidden function working')
$(this).parent.document.getElementById('bottomFrame').style.visibility = "hidden"
}), function() {
alert('visible function working')
$(this).parent.document.getElementById('bottomFrame').style.visibility = "visible"
}
});
我沒有得到任何錯誤,從這但沒有任何反應。它甚至沒有打到匿名函數。
如果有人能告訴我我做錯了什麼,我將不勝感激。
啊拍。這就解釋了爲什麼它沒有進入這個功能。謝謝。所以它進入函數,然後進入函數來隱藏框架,當我把它懸停在它上面。不幸的是,它沒有做任何事情。我試過你的代碼,它的工作原理,但它在錯誤的框架上工作。我需要隱藏底部框架。謝謝你的代碼,但因爲它讓我看到父母沒有做我做過的事情,雖然它會這樣做 – comfortablyNumb
@comfortablyNumb不客氣。你能再試一次嗎?有一個小的語法錯誤,我修正了(缺少)括號) – user2771704
它隱藏了錯誤的框架。它隱藏了菜單完美的頂部框架。我需要做的是隱藏底部框架。任何想法如何我可以訪問該框架? document.getElementById('bottomFrame')。style.visibility =「hidden」不起作用。我嘗試用$(this).document.getElementById('bottomFrame').css(「visibility」,「hidden」)替換.parent()。但它不承認getElementById('bottomFrame') – comfortablyNumb