我知道如何在通过JavaScript创建新窗口时指定“windowFeatures”,例如菜单栏 - open(url,windowname,windowfeatures)
我的问题是:是否有与iframe类似的功能?可以将windowproperties分配给iframe吗?
我搜索过谷歌,我发现所有人都会询问有关将他们的网页菜单放在iframe中而无法显示浏览器菜单的问题。
有没有办法做到这一点?
鲍勃
* 更新 * - 我正在完成我称之为rknWindows(rkn =我的姓名首字母)的工作,这些工作实际上是可移动且可重复调整的分区。看起来像一个窗口。
rknWindow的内容是一个iframe,您可以在其中加载网页。
我的目的是为访问者提供另一种在弹出窗口中查看有关网站信息的方法,可以这么说。
当我努力修改和改进Jon Psalmonds Info Net
时,我决定需要这样的东西该网站包含大量数据,我即将添加更多数据。目前它会导致访问者数据过载,而新信息则会更糟糕。
在完全替换的网站上,我使用了可折叠/可扩展的部门,我称之为sideBox(一个可以扩展到位的小盒子 - 有点像可折叠/可扩展的部门,但看起来不同)但我仍然没有到达我正在寻找的东西。
我决定,一方面,我需要提供一个帮助系统来解释网站上所有的功能和信息类型,我的第一个想法是一系列帮助页面。
但是我希望在浏览器窗口中显示一些内容,与访问者正在阅读的页面相同的窗口,而不是在同一窗口或新窗口中打开的另一个页面的链接。可以重新调整大小,移动,打开和关闭的东西 - 就像一个窗口。
我环顾四周,看看其他人是如何攻击这个问题并与其中几个玩弄的。
我看到并喜欢的是dynDiv但是,它没有格式/视图,也没有我想要的一些功能。
所以,我对dynDiv进行了重大修改,我删除了一些功能,添加了新功能,使得该部门的创建完全动态,只支持iframe的部门,而不仅仅是文本等等。
当我发现iframe没有显示您可以为新窗口指定的任何属性时,我只是在测试功能。
我不确定如何使用它们,但我知道我的大脑背部燃烧器上有一些东西可以用来制作它们。
因此我的问题。
关于rknWindows,当我对它进行全面测试,按照我的意愿工作和查看,并完整记录时,我会在my web site
上放置有关该设施的页面如果你想知道,我会把Markus Bordihn归功于我建立的基础,但考虑到我的改变程度(以及我现在正在研究的一些),它真的是一个新的设施,建立在dynDiv的基础知识。
这就是为什么我向iframe询问关于“windowproperties”的问题。
第二次更新
这是rknWindow的定义,因为它现在已经存在 - 我仍在改进(当然,这一切都不是独立的,有很多CSS和JavaScript扮演着重要的角色):
<div id="test_rknWindow" class="rknWin_Parent rknWinElem" style="top: 5px; left: 5px; width: 300px; height: 150px; display: inline; z-index: 2; visibility: visible;" indexarrayindex="0">
<div class="rknWin_titleBar rknWinElem" id="test_titleBar">test title</div>
<img src="img/rknwin/closeButton.png" style="height: 14px; width: 16px;" class="rknWin_closeBttn">
<div style="top: 20px; width: 300px; height: 108px;" class="rknWin_Contents_Iframe rknWinElem" id="test_contents">
<div id="test_disableIframe" class="rknWin_disableIframe rknWinElem" style="z-index: 11; display: none;"></div>
<iframe id="test_iframe" class="rknWin_iframe rknWinElem" name="rknWin_iframe" src="rknwin/explainsic.shtml"></iframe>
</div><div style="width: 300px; cursor: default;" class="rknWin_statusBar rknWinElem" id="test_statusBar"></div>
<div class="rknWin_corner_BR rknWinElem"></div>
<div class="rknWin_corner_LTl rknWinElem"></div>
<div class="rknWin_corner_LTt rknWinElem"></div>
<div class="rknWin_corner_RTt rknWinElem"></div>
<div class="rknWin_corner_RTr rknWinElem"></div>
<div class="rknWin_corner_LBb rknWinElem"></div>
<div class="rknWin_corner_LBl rknWinElem"></div>
<div class="rknWin_border_Lm rknWinElem" id="test_border_Lm" style="height: 118px;"></div>
<div class="rknWin_border_Tm rknWinElem" id="test_border_Tm" style="width: 268px;"></div>
<div class="rknWin_border_Bm rknWinElem" id="test_border_Bm" style="width: 262px;">
</div><div class="rknWin_border_Rm rknWinElem" id="test_border_Rm" style="height: 118px;"></div>
</div>
以下是创建该代码的一些代码:
var source = ((rknSrc !== undefined) && (rknSrc !== null)) ? rknSrc : "";
var rknWin = document.createElement("div");
rknWin.id = rknName + "_rknWindow";
rknWin.className = "rknWin_Parent rknWinElem";
rknWin.style.top = Top + "px";
rknWin.style.left = Left + "px";
rknWin.style.width = Width + "px";
rknWin.style.height = Height + "px";
rknWin.rknWinType = "rknWindow";
rknWin.style.display = "none";
rknWin.rknInitDisplay = (rknDisplay === true) ? true : false;
rknWin.rknWinParent = true;
rknWin.rknWinName = rknName;
var rknTitleBar = document.createElement("div");
rknTitleBar.className = "rknWin_titleBar rknWinElem";
rknTitleBar.id = rknName + "_titleBar";
rknTitleBar.rknWinType = "titleBar";
rknWin.appendChild(rknTitleBar);
请记住,这一切尚未准备好公开发布。我今天晚上回过头来修改并完整评论它。
所以,我就是这样做的 - 就像现在一样。
我将研究答案中提到的设施。
答案 0 :(得分:2)
没有,不应该。
答案 1 :(得分:1)
简短的回答:没有。
但是,如果您描述了为什么要这样做,我可以帮助替代方案吗?
更新
嗯,我认为可能很难确切地知道你正在处理什么而没有真正看到它。但是从你所说的内容来看,它基本上归结为:你有很多内容,并希望用户能够在独立运行的独立“部门”中查看部分内容。听起来我需要利用ajax来动态加载内容,并使用一个好的UI库来帮助您动态呈现数据。使用DOM来了解它的功能和功能。查找javascript模板引擎,会有很多例子 - 比如KnockoutJS,骨干,AngularJS ......有几十个。老实说,如果这种类型的技术真的可以帮助你解决你想要解决的问题,但这是我的直觉 - 你有点咆哮错误的树试图以他们不适合的方式使用iframe
答案 2 :(得分:1)
就浏览器菜单而言,不可以。
但是,你可以重新创建地址栏, fwd / back &amp; 刷新按钮,以及带有javascript的新标签按钮。
控件必须位于iframe之外。
地址栏&amp;刷新:使用window.location。
前进/后退按钮:使用数组&amp; window.location或history.pushstate。
新标签: document.createElement('iframe');