2013-03-11 41 views
0

我知道如何在通过JavaScript创建新窗口时指定“windowFeatures”,比如菜单栏 - open(url,windowname ,windowfeatures)iframe - 有没有办法在iframe中显示浏览器的菜单栏和地址栏等其他项目

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

我用Google搜索过,所有我能找到的都是人们询问有关如何将他们的网页菜单放在iframe中而无法显示浏览器菜单的问题。

有没有办法做到这一点?

鲍勃

* UPDATE * - 我完成了工作,我称之为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); 

记住,没有Ø这还没有准备好公开发布。我今天晚上回到代码中,完善并充分评论它。

所以,我就是这么做的 - 就像现在一样。

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

回答

1

简答:不。

但也许我可以帮助替代品,如果你描述为什么你想这样做?

UPDATE

嗯,我想这可能是很难知道你处理没有实际看到它到底是什么。但是从你所说的听起来基本上可以归结为:你有很多内容,并希望用户能够在独立的“部门”中查看其中的一部分,这些部门独立运行。在我看来,您需要利用ajax动态加载内容,并使用一个好的UI库来帮助您动态地呈现数据。使用DOM来确定它的功能和功能。查找javascript模板引擎,会有很多例子 - 比如KnockoutJS,主干,AngularJS ..有几十个。老实说,这种类型的技术确实能帮助你解决你正在解决的问题,但这是我的本能 - 你有点咆哮错误的树,试图以不适合的方式使用iframe 。

+0

InfinitiesLoop - 我根据您的要求更新了我的问题 – BobN 2013-03-11 00:57:59

+0

@BobN谢谢,我编辑了我的答案回应:)希望这会有帮助,这是我所能了解的有关您的情况的最好方法。 – InfinitiesLoop 2013-03-11 02:49:35

+0

这不是我用来完成我想要的“窗口”类型的iframe,而是基于分区,定位等。iframe仅仅是“内容”部分的内容,窗口。”我将更新我的问题并向您展示我将DOM用于创建这些rknWindow的用法。 – BobN 2013-03-11 04:22:59

2

不,不存在和不存在不应该是。

+0

bažmegakapa - 你介意解释为什么不应该有。 – BobN 2013-03-11 00:55:03

+0

@BobN Iframes不是那样定义的。他们被绑定到他们的父浏览上下文。你可以阅读HTML5规范。 – kapa 2013-03-11 01:07:37

+0

啊,好吧,如果他们被绑定到“...他们的父浏览上下文”我怎么能从另一个域加载一个页面到iframe?我只是这样做了,而iframe显示了来自其他域的页面。所以 - 除非我误解你的评论:“他们被绑定到他们的父浏览器上下文。”它似乎不是真的 - iframe的内容甚至不必与包含iframe的页面来自同一个域。我在你的回复中遗漏了什么? – BobN 2013-03-22 00:37:12

1

在浏览器菜单方面,不,你不能。

但是,你可以重新创建地址栏,在FWD /回 & 刷新按钮,并使用JavaScript 新标签按钮。

控件必须位于iframe之外。

地址栏&刷新:使用window.location。使用数组& window.location或history.pushstate。

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

+0

格兰特凯利 - 是的,我想到了地址栏,前后都没有想过“新标签”的事情。所以 - 我想我的问题的答案是坚实的 - 不可以轻易完成。谢谢 – BobN 2013-03-11 00:57:19

相关问题