和这个问题是一样的:程序结构:左边框架(left)+右边框架(main)目的:左边框架是菜单,点击左边菜单在main框架中响应响应页面,同时在main框架中产生同时定位一个层ps:由于菜单太多,现在希望在框架中做js函数实现,或者是在左框架点击菜单的时候同时响应并在main框架中产生一个层,并定位! 罗嗦一下,不是<a href="ohref(url)" tager="main">菜单</a>
是在main框架中打开指定的url的时候,同时自动在指定页面自动生成一个悬浮层
是在main框架中打开指定的url的时候,同时自动在指定页面自动生成一个悬浮层
如果是这样的话,直接用css里边的position:fixed就可以在firefox和opera中实现其位置的固定,而对于ie的话,需要在body的onscroll事件时控制这个层的位置,一般用window.body.scrollTop来获取当前滚动条离页面顶端的位置,所以要固定这个层的位置就可以通过这个属性来实现了
parent.frames[oTarget].location = oUrl;
var maindocument = parent.frames[oTarget].document;
var div = maindocument.createElement("div");
div.style.position = "absolute";
div.style.width = "30px";
div.style.height = "30px";
div.style.z-index = "10";
div.style.left = "180px";
div.style.top = "400px";
maindocument.body.appendChild(div);
}
1:前几天有给朋友试过,window.createPopup( [vArgs]),使用如下例,对创建的窗口进行相关定位;
<HTML>
<HEAD>
<TITLE>Popup Example</TITLE>
<SCRIPT LANGUAGE="JScript">
var oPopup = window.createPopup();
function ButtonClick()
{
var oPopBody = oPopup.document.body;
oPopBody.style.backgroundColor = "lightyellow";
oPopBody.style.border = "solid black 1px";
oPopBody.innerHTML = "Click outside <B>popup</B> to close.";
oPopup.show(100, 100, 180, 25, document.body);
}
</SCRIPT>
</HEAD>
<BODY>
<BUTTON onclick="ButtonClick()">Click Me!</BUTTON>
</BODY>
</HTML>
2:或者直接用模拟框架,或者一部分用DIV,一部分用<iframe>
再用样式进行相关定位与层的控制;
parent.frames[oTarget].location = oUrl;
var maindocument = parent.frames[oTarget].document;
newElement.id = 'newDiv';
newElement.className = 'newDivClass';
newElement.setAttribute('name ','newDivName');
newElement.style.width = '60px';
newElement.style.height = '60px';
newElement.style.margin = '0 auto';
newElement.style.border = '1px solid #DDD';
newElement.appendChild(newText);
div.style.width = "30px";
div.style.height = "30px";
div.style.z-index = "10";
div.style.left = "180px";
div.style.top = "400px";*/
maindocument.body.appendChild(newElement);}
parent.frames[oTarget].location = oUrl;
var maindocument = parent.frames[oTarget].document;
newElement.id = 'newDiv';
newElement.className = 'newDivClass';
newElement.setAttribute('name ','newDivName');
newElement.style.width = '60px';
newElement.style.height = '60px';
newElement.style.margin = '0 auto';
newElement.style.border = '1px solid #DDD';
newElement.appendChild(newText);
maindocument.body.appendChild(newElement);}
第二:z-index,DHTML写法为zIndex。
第三:*/这里多写了一些function cmdOverDiv( oUrl, oTarget ) {
parent.frames[oTarget].location = oUrl;
var maindocument = parent.frames[oTarget].document;
newElement.id = 'newDiv';
newElement.className = 'newDivClass';
newElement.setAttribute('name ','newDivName');
newElement.style.width = '60px';
newElement.style.height = '60px';
newElement.style.margin = '0 auto';
newElement.style.border = '1px solid #DDD';
newElement.appendChild(newText);
div.style.width = "30px";
div.style.height = "30px";
div.style.zIndex = "10";
div.style.left = "180px";
div.style.top = "400px";
maindocument.body.appendChild(newElement);}
是不是小弟表述有问题啊!
我想实现的是,就是在LeftMenu的 cmdOverDiv( oUrl, oTarget ) 在main框架中动态生成一
个层,下面是小弟写的,不知道出错在哪里(前面的粘错了)
*/目前的描述应该没有问题,
为了确定,我重复你的需求:"在左边框架响应某些动作,结果是:右边的框架中产生一个层?"
如果是这样,针对上述代码,你可以明确两个方面:1:当在左边响应某些事件时,是否是正确的响应到右边框架;//这一步是取右边窗口,类似你下面代码
/**
parent.frames[oTarget].location = oUrl;
var maindocument = parent.frames[oTarget].document;
*/2:如果上一步没问题,再试着去右框架追加结点,先不加样式,这样便于你调试;3:如果第二步成功实现,再去对追回的结点进行样式;