0

JavaScriptを使用して新しいウィンドウを作成するときにメニューバーなどの「windowFeatures」を指定する方法を知っています-open(url、windowname、windowfeatures)

私の質問は:iframeと同等の機能はありますか?windowpropertiesをiframeに割り当てることはできますか?

Googleで検索したところ、ブラウザのメニューが表示されないiframeにWebページのメニューを配置することについて質問している人しか見つかりませんでした。

これを行う方法はありますか?

ボブ

*更新* -私はrknWindows(rkn =私のイニシャル)と呼んでいるものの作業を終えています。これは実際には移動可能でサイズ変更可能で、ウィンドウのように見える分割です。

rknWindowのコンテンツは、Webページをロードできるiframeです。

私の意図は、いわばポップアップウィンドウではないポップアップウィンドウでサイトに関する情報を表示する別の方法を訪問者に提供する方法です。

Jon Psalmonds Info Netの改訂と改善に取り組んだので、このようなものが必要だと判断しました。

このサイトには膨大な量のデータが含まれており、さらに追加しようとしています。現在、訪問者のデータが過負荷になり、新しい情報があればさらに悪化します。

完全な交換サイトでは、折りたたみ可能/拡張可能な分割を使用しました。これは、sideBox(その場で拡張する小さなボックス-折りたたみ/拡張可能な分割のようなものですが、見た目は異なります)と呼ばれるものですが、まだ到着していませんでした私が探しているもので。

まず、サイトのすべての機能と情報の種類を説明するヘルプシステムを提供する必要があると判断し、最初に考えたのは一連のヘルプページでした。

しかし、同じウィンドウまたは新しいウィンドウで開いた別のページへのリンクではなく、訪問者が読んでいるページと同じウィンドウであるブラウザウィンドウに表示されるものが必要でした。窓のように、サイズを変更したり、移動したり、開いたり、閉じたりできるもの。

私は周りを見回して、他の人がどのように問題を攻撃したかを確認し、それらのいくつかで遊んだ。

私が見て気に入ったのはdynDivですが、フォーマット/ビューも必要な機能もありませんでした。

そのため、dynDivに大きな変更を加え、いくつかの機能を削除し、新しい機能を追加し、部門の作成を完全に動的にし、テキストなどだけでなく、iframeを使用した部門のみをサポートしました。

新しいウィンドウに指定できるプロパティがiframeに表示されないことに気付いたとき、私は機能をテストしていました。

それらをどのように使用するかは正確にはわかりませんが、脳のバックバーナーの1つに何かがあり、それらを使用する可能性があることは知っています。

したがって、私の質問。

rknWindowsについては、完全にテストされ、動作し、必要に応じて表示され、完全に文書化されたら、Webサイトに施設に関するページを掲載します。

不思議に思うなら、私が構築したベースについてMarkus Bordihnの功績を認めますが、私の変更の範囲(および現在取り組んでいるもの)を考えると、これはdynDivの基本に基づいて構築された本当に新しい施設です。 。

そのため、iframeの「windowproperties」について質問しました。

2回目の更新

これが現在の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

簡単な答え:いいえ。

しかし、あなたがそれをしたい理由を説明した場合、多分私は代替案を手伝うことができますか?

アップデート

さて、実際に見ずに何を扱っているのかを正確に知るのは難しいかもしれません。しかし、あなたが言ったことから、それは基本的にこれに帰着するように聞こえます:あなたはたくさんのコンテンツを持っていて、ユーザーがある程度独立して動作する独立した「部門」でその一部を見ることができるようにしたいと思っています。ajaxを利用してコンテンツを動的にロードし、優れたUIライブラリを使用してデータを動的にレンダリングする必要があるように思えます。それが何であるか、そしてその機能のためにDOMを使用してください。javascriptテンプレートエンジンを検索すると、KnockoutJS、バックボーン、AngularJSなどの多くの例があります。数十あります。このタイプのテクノロジーが実際に解決しようとしている問題の解決に役立つかどうかは正直にわかりませんが、それが私の本能です。

于 2013-03-11T00:20:41.347 に答える
1

ブラウザメニューに関しては、できません。

ただし、アドレスバーfwd / backrefreshボタン、およびjavascriptを使用した新しいタブボタンを再作成できます。

コントロールはiframeの外に配置する必要があります。

アドレスバーと更新: window.locationを使用します。

Fwd / backボタン: array&window.locationまたはhistory.pushstateを使用します。

新しいタブ: document.createElement('iframe');

于 2013-03-11T00:44:22.510 に答える