2013-03-11 42 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

相關問題