我正在处理使用框架集和框架的旧网页(在html和java脚本中),公司并不想重做所有内容。主页面有两个框架,treeFrame有菜单(它有一个大菜单,顶部有(1)弹出菜单,文件浏览器中的每个选定产品都有(2)菜单)和另一个框架docFrame显示所选产品文档或自定义文档未找到页面。
当用户点击treeFrame中的某个文档图标时,使用此
在文档框架中显示pdf<a href="../pdf/example.pdf" target="docFrame"></a>
我想让treeFrame折叠并展开点击一些新按钮(我可以随意放置在任何框架中),这样用户可以更好地查看文档框架。我需要它来支持上述功能。目标设备是启用触摸的监视器。此外,目标设备也将在本地拥有文件,因此它应该在没有互联网的情况下独立工作,因此我无法添加jQuery(我猜)。服务器是Windows Server 2003。
在线查看后,我发现无法在帧之间进行通信。如果是这样,我有什么选择来替换帧并仍然可以做上面的事情?如果不是,我如何通过按下按钮来最小化帧大小。
到目前为止,我试过这个,(没有用)
我在treeFrame中添加了此部分
<button type = "button" onclick="send()";>Collapse</button>
<script>
var port;
onmessage = function(e)
{
port = e.ports[0];
}
function send()
{
port.postMessage("clicked");
}
</script>
这部分在主html文件中
<frameset cols="520,*">
<frame src="tree.html" name="treeFrame" target="_self">
<frame src="documents.htm" name="docFrame " target="right">
</frameset>
<script>
var channel = new MessageChannel();
var treeframe = $(".treeframe")[0].contentWindow;
var origCols = null;
treeframe.onload = function()
{
this.postMessage("","*", [channel.port2])
};
channel.port1.onmessage = function(e)
{
if (e.data === "clicked")
{
if(origCols!=null)
showFrame()
else
hideFrame();
}
}
function hideFrame() {
var frameset = document.getElementById("frameSet");
origCols = frameset.cols;
frameset.cols = "0, *";
}
function showFrame()
{
document.getElementById("frameSet").cols = origCols;
origCols = null;
}
</script>