0

我知道如何在通过 JavaScript 创建新窗口时指定“windowFeatures”,例如菜单栏 - open(url, windowname, windowfeatures)

我的问题是:iframe 是否有类似的功能?可以将 windowproperties 分配给 iframe 吗?

我用谷歌搜索过,我能找到的只是人们问关于将他们的网页菜单放在 iframe 中而不是让浏览器的菜单显示的问题。

有没有办法做到这一点?

鲍勃

*更新* - 我正在完成我所谓的 rknWindows(rkn = 我的首字母缩写)的工作,它们实际上是可移动和可调整大小的分区,看起来像一个窗口。

rknWindow 的内容是一个 iframe,您可以在其中加载网页。

我的意图是为访问者提供另一种在弹出窗口中查看网站信息的方法,可以说它不是弹出窗口。

当我努力修改和改进Jon Psalmonds 信息网时,我决定需要这样的东西

该网站包含大量数据,我将添加更多数据。目前,它会导致访问者的数据过载,并且随着新信息的出现,情况会更糟。

在整个替换站点上,我使用了可折叠/可扩展的分区,我称之为 sideBox(一个就地扩展的小盒子 - 有点像可折叠/可扩展的分区,但看起来不同)但我仍然没有到达在我正在寻找的东西。

我决定,一方面,我需要提供一个帮助系统来解释网站上的所有功能和信息类型,我的第一个想法是一系列帮助页面。

但我想要在浏览器窗口中显示的东西,与访问者正在阅读的页面相同的窗口,而不是在同一窗口或新窗口中打开的另一个页面的链接。可以重新调整大小、移动、打开和关闭的东西——比如窗户。

我环顾四周,看看其他人是如何解决这个问题的,并与其中几个人一起玩耍。

我看过并喜欢的一个是dynDiv但是,它没有格式/视图,也没有我想要的一些功能。

因此,我对 dynDiv 进行了重大更改,删除了一些功能,添加了新功能,使分区的创建完全动态化,仅支持带有 iframe 的分区,而不仅仅是文本等。

当我发现 iframe 不显示您可以为新窗口指定的任何属性时,我只是在测试功能。

我不完全确定我将如何使用它们,但我知道我大脑的一个后脑勺上有些东西可能会酝酿成对它们的用途。

因此我的问题。

至于 rknWindows,当我对其进行了全面测试、按我想要的方式工作和查看,并有完整的文档记录后,我会将有关该设施的页面放在我的网站上

如果您想知道,我将感谢 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);

请记住,这些都还没有准备好公开发布。今天晚上我将回顾代码,对其进行完善和全面评论。

所以,这就是我现在的做法。

我将研究答案中提到的设施。

4

3 回答 3

2

不,没有,也不应该有。

于 2013-03-11T00:20:36.363 回答
1

就浏览器菜单而言,不,你不能。

但是,您可以使用 javascript重新创建地址栏前进/后退刷新按钮以及新标签按钮。

控件必须位于 iframe 之外。

地址栏和刷新:使用 window.location。

前进/后退按钮:使用数组 & window.location 或 history.pushstate。

新标签: document.createElement('iframe');

于 2013-03-11T00:44:22.510 回答
1

简短的回答:不。

但是,如果您描述了为什么要这样做,也许我可以提供替代方案?

更新

好吧,我认为如果没有实际看到它,可能很难确切地知道你在处理什么。但从你所说的听起来基本上可以归结为:你有很多内容,并希望用户能够在独立的“部门”中查看其中的一部分,这些“部门”在某种程度上独立运作。在我看来,您需要利用 ajax 来动态加载内容,并使用好的 UI 库来帮助您动态呈现数据。使用 DOM 的本质及其功能。查找javascript模板引擎,会有很多例子——比如KnockoutJS、backbone、AngularJS..有几十个。老实说,不知道这种技术是否真的能帮助你解决你想要解决的问题,但这是我的直觉——你

于 2013-03-11T00:20:41.347 回答