不知道你是不是这个意思,大概思路,要区分浏览器类型和版本
//这些写在你要显示的那个帧中,当然那个真要存在
try{
var code=parent.frame1.document.all['divID'].outerHTML;
document.write(code);
...var mydiv=document.all['divID'];
mydiv.style.top=...;
mydiv.style.left=...;
}
catch(x){alert('没有定义层!')
//这些写在你要显示的那个帧中,当然那个真要存在
try{
var code=parent.frame1.document.all['divID'].outerHTML;
document.write(code);
...var mydiv=document.all['divID'];
mydiv.style.top=...;
mydiv.style.left=...;
}
catch(x){alert('没有定义层!')
在第一个帧中定义一个层,层开始是隐藏的,这个帧中只显示一条图片,当鼠标单击图片时显示该层,而该层是跨帧显示,即显示在在第二个帧的指定位置上,当然控制层显示的javascript脚本只能使用在第一个帧中(定义层的帧),而无法使用在第二个帧中(因为第二个帧中链接的是其他页面,有很多,不可能挨个页面写入定义显示该层的javascript脚本),所有的脚本必须在第一个帧中完成.
var loELement = parent.youFrameName.document.createElement("DIV");
loELement.id = "showImgDiv"
loELement.innerHTML = '<img......>';
parent.youFrameName.document.body.insertBefore(loELement);
}
理论上可以的,呵呵,代码你还是自己写写吧。
<FRAMESET ROWS="50%,50%" BORDER="1" FRAMESPACING="0" TOPMARGIN="0" LEFTMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0">
<FRAME NAME="Top" SRC="top.htm" SCROLLING="yes" BORDER="0" FRAMEBORDER="yes" TOPMARGIN="0" LEFTMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0">
<FRAME NAME="bottom" SRC="bottom.htm" SCROLLING="yes" BORDER="0" FRAMEBORDER="yes" TOPMARGIN="0" LEFTMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0">
</FRAMESET>--top.htm--
空白就可以,不过要有这个文件
--- bottom.htm --- 你要的代码
<html>
<body>
<BUTTON onclick="showframeDiv()">显示层</BUTTON>
<BUTTON onclick="hideframeDiv()">隐藏层</BUTTON>
<script language=javascript>var moELement = null;
function showframeDiv(){
var lb = 0;
try{
moELement.style.display = "block";
}catch(e){
moELement = parent.Top.document.createElement("DIV");
moELement.id = "showImgDiv"
parent.Top.document.body.insertBefore(moELement);
moELement.style.display = "none";
moELement.innerHTML = '<img src="youimg.jpg" width="100" height="100"> 这是从bottom创建的层';
if (!lb){ showframeDiv(); }else{ alert("Top的页面还没准备好!")}
lb = 1;
}
}
function hideframeDiv(){
try{
moELement.style.display = "none";
}catch(e){
alert("top的层还没创建呢!");
}
}
</script>
</body>
</html>
function showframeDiv(){
var lb = 0;
try{ //尝试显示层
moELement.style.display = "block"; //显示层
}catch(e){ //如果显示层出错的话
moELement = parent.Top.document.createElement("DIV"); //在Top页面创建DIV对象
moELement.id = "showImgDiv" //这个可以不要
parent.Top.document.body.insertBefore(moELement);//在Top页面插入刚才创建的对象
moELement.style.display = "none"; //令它不显示
moELement.innerHTML = '<img src="youimg.jpg" width="100" height="100"> 这是从bottom创建的层'; //设置层的内容
if (!lb){ showframeDiv(); }else{ alert("Top的页面还没准备好!")} //这个防止死循环用,当top没完成下载,或确实不能创建层时给出提示。
lb = 1;
}
}
function hideframeDiv(){
try{
moELement.style.display = "none"; //隐藏
}catch(e){
alert("top的层还没创建呢!"); //错误提示
}
}
<body><div id="showImgDiv" style="display:none">
<img src="youimg.jpg" width="100" height="100"> 这是从bottom框架原有的层
</div><BUTTON onclick="showframeDiv()">显示层</BUTTON>
<BUTTON onclick="hideframeDiv()">隐藏层</BUTTON>
<script language=javascript>var moELement = null;function showframeDiv(){
if (moELement == null)
{
moELement = parent.Top.document.createElement("DIV");
moELement.innerHTML = showImgDiv.innerHTML;
}
parent.Top.document.body.insertBefore(moELement);
moELement.style.display = "block";
}function hideframeDiv(){
moELement.style.display = "none";
}
</script>
</body>
</html>
对不起,你的解答我不会接受,你不但侮辱我,还侮辱了懒猫兄,你的帖子将被我删除!!!
"定位 javascript"会有11800项查询结果,够详细的啦,呵呵...