2013-03-11 1 views
0

Je sais comment spécifier "windowFeatures" tel que menubar lors de la création d'une nouvelle fenêtre via JavaScript - open (url, windowname , windowfeatures)iframe - est-il un moyen d'afficher la barre de menu du navigateur, et d'autres articles comme la barre d'adresse, dans un iframe

Ma question est: existe-t-il une fonctionnalité comparable avec un iframe? Est-ce que windowproperties peut être assigné à un iframe?

J'ai cherché avec Google et tout ce que je peux trouver, ce sont des gens qui posent des questions sur le fait de mettre le menu de leurs pages web dans un iframe qui n'affiche pas le menu du navigateur.

Y at-il un moyen de le faire?

Bob

* MISE À JOUR * - Je termine le travail sur ce que j'appelle rknWindows (RKN = mes initiales) qui sont vraiment les divisions qui sont mobiles et redimensionnable et ressemble à une fenêtre .

Le contenu de la rknWindow est une iframe dans laquelle vous pouvez charger une page Web.

Mon intention est de fournir au visiteur un autre moyen d'afficher des informations sur le site dans une fenêtre qui n'est pas une fenêtre contextuelle, pour ainsi dire.

J'ai décidé besoin de quelque chose comme ça que je travaillais à essayer de réviser et d'améliorer Jon Psalmonds Info Net

Le site contient une énorme quantité de données et je suis sur le point d'ajouter encore plus. Actuellement, il provoque une surcharge de données pour les visiteurs et avec les nouvelles informations, il sera encore pire.

Sur le site de remplacement total, j'ai utilisé des divisions pliables/extensibles, ce que j'appelle une sidebox (une petite boîte qui se déplie sur place - sorte de division pliable/extensible mais semble différente) mais je n'avais pas encore Je suis arrivé à ce que je cherchais. J'ai décidé, d'une part, que je devais fournir un système d'aide pour expliquer toutes les caractéristiques et les types d'informations sur le site et ma première pensée était une série de pages d'aide.

Mais je voulais quelque chose qui serait affiché dans la fenêtre du navigateur, la même fenêtre que la page que le visiteur lit, pas un lien vers une autre page ouverte dans la même fenêtre ou dans une nouvelle fenêtre. Quelque chose qui pourrait être redimensionné, déplacé, ouvert et fermé - comme une fenêtre. J'ai regardé autour de moi pour voir comment les autres avaient attaqué le problème et joué avec quelques-uns d'entre eux.

Un que j'ai regardé et aimé est dynDiv Cependant, il n'a pas eu le format/vue ni certaines des caractéristiques que je veux.

Alors, je me suis fait des changements majeurs à dynDiv, je l'ai laissé tomber certaines fonctionnalités, a ajouté de nouvelles, a fait la création de la division entièrement dynamique, seules les divisions de soutien avec les iframes, pas seulement du texte, etc., etc.

Je ne faisais que tester des fonctionnalités quand je me suis rendu compte qu'un iframe n'affichait aucune des propriétés que vous pouvez spécifier pour une nouvelle fenêtre. Je ne sais pas exactement comment je pourrais les utiliser, mais je sais que quelque chose se trouve sur l'un des brûleurs du dos de mon cerveau qui peut être utilisé pour eux.

Ainsi ma question.

Quant aux rknWindows, quand je l'ai entièrement testé, le travail et la recherche que je veux, et bien documenté, je vais mettre des pages sur l'installation sur my web site

Si vous vous demandez, je vais féliciter Markus Bordihn pour la base sur laquelle j'ai construit mais étant donné l'ampleur de mes changements (et certains sur lesquels je travaille actuellement) c'est vraiment une nouvelle installation, basée sur les bases de dynDiv.

Voilà pourquoi je demandé à ma question sur « windowproperties » pour un iframe.

Deuxième mise à jour

Voici la définition d'un rknWindow, tel qu'il est maintenant - je suis toujours à affiner les choses (tout cela, bien sûr, ne standalone pas, il y a beaucoup de CSS et JavaScript joue un rôle de signes vitaux):

<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> 

est ici un peu du code qui crée que:

 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); 

Rappelez-vous, aucun o f ceci est encore prêt pour la publication. Je reviens sur le code ce soir, en l'affinant et en le commentant pleinement.

Alors, voilà comment je le fais - au moment.

je regarderai dans des installations qui ont été mentionnés dans les réponses.

Répondre

1

Réponse courte: Non.

Mais je peux peut-être aider à des solutions de rechange si vous avez décrit pourquoi vous voulez faire?

MISE À JOUR

Eh bien, je pense qu'il pourrait être difficile de savoir exactement ce que vous faites affaire avec sans voir réellement. Mais d'après ce que vous avez dit, il semble que cela se résume à ceci: vous avez beaucoup de contenu et vous voulez que l'utilisateur puisse en voir certaines parties dans des 'divisions' indépendantes qui fonctionnent de manière indépendante. Il me semble que vous devez profiter de ajax pour charger dynamiquement le contenu, et utiliser une bonne bibliothèque d'interface utilisateur pour vous aider à rendre les données dynamiquement. Utilisez le DOM pour ce qu'il est et ses capacités. Rechercher des moteurs de template javascript et il y aura beaucoup d'exemples - tels que KnockoutJS, backbone, AngularJS .. il y a des dizaines. Aucune idée honnête si ce type de technologie vous aide réellement à résoudre le problème que vous essayez de résoudre, mais c'est mon instinct - que vous sortez du mauvais arbre en essayant d'utiliser les iframes d'une manière qu'ils ne sont pas adaptés pour .

+0

InfinitiesLoop - J'ai mis à jour ma question par votre demande – BobN

+0

@BobN Merci, j'ai édité ma réponse en réponse :) J'espère que c'est utile, c'est le mieux que je peux faire avec ce que je sais de votre situation. – InfinitiesLoop

+0

Ce ne sont pas tellement les iframes que j'utilise pour accomplir le type de "fenêtre" que je veux, tout est basé sur les divisions, le positionnement, etc. L'iframe est simplement le contenu de la division "contents" dans le " fenêtre." Je vais mettre à jour ma question et vous montrer le type d'utilisation auquel je mets le DOM dans la création de ces rknWindow. – BobN

2

Non il n'y en a pas et ne devrait pas être.

+0

bažmegakapa - Cela vous dérangerait-il d'expliquer pourquoi il ne devrait pas y avoir. – BobN

+0

@BobN Les Iframes ne sont simplement pas définies comme ça. Ils sont liés au contexte de navigation des parents. Vous pouvez lire les spécifications HTML5. – kapa

+0

Ah, eh bien, s'ils sont liés à "... leur contexte de navigation parent", comment est-ce que je peux charger une page d'un autre domaine dans un iframe? Je viens de le faire et l'iframe a affiché la page de l'autre domaine. Donc, à moins que je ne comprenne mal votre commentaire: "Ils sont liés au contexte de leur navigateur parent." il semblerait que ce n'est pas vrai - le contenu d'un iframe ne doit même pas provenir du même domaine que la page contenant l'iframe. Ai-je manqué quelque chose dans votre réponse? – BobN

1

En ce qui concerne le menu du navigateur, pas vous ne pouvez pas.

MAIS, vous pouvez recréer la barre d'adresse , le RNV/retour & bouton Actualiser, et le bouton nouveau onglet avec javascript.

Les contrôles doivent être situés à l'extérieur de l'iframe.

Barre d'adresse & actualiser: en utilisant window.location.

Boutons Fwd/retour: en utilisant un tableau & window.location ou history.pushstate.

Nouvel onglet: document.createElement ('iframe');

+0

Grant Kiely - oui, je pensais à la barre d'adresse et en avant et en arrière - n'avait pas pensé à la chose "nouvel onglet". Donc, je suppose que la réponse à ma question est solide. Non. Cela ne se fait pas facilement. Merci – BobN

Questions connexes