Hta et reference aux frames [Résolu]

David78390 197 Messages postés jeudi 27 avril 2006Date d'inscription 10 juillet 2011 Dernière intervention - 1 juin 2006 à 09:26 - Dernière réponse : francemarieanna 12 Messages postés mardi 11 juillet 2006Date d'inscription 5 décembre 2006 Dernière intervention
- 2 déc. 2006 à 19:17
Bonjour a tous, j'ai un big probleme:

Pour mon site, j'ais du passé ma page index.html en index.hta
(afin que ce soit vu comme un executable)
Dans mes javascript, je fait appel à une fonction qui me permet de modifier la taille de mes frames et leur contenu :

La fonction marche bien tant que ma page index est en .html
Mais j'ai l'erreur suivante quand je la passe en .hta:
'parents.frames.principale' à la valeur NULL ou n'est pas un objet
Donc comment fait-on pour le referencement des frames. J'ai du mer*er quelque part, mais je ne voit pas ou.

Voila les sources
la page index.hta:
<hta:application icon="dms.ico">
<HEAD>
<TITLE>Le Portail DMS (Didalab Matelco STCI)</TITLE>
</HEAD>
<!-- frames -->
<frameset id="principale" name="principale" cols="100%,0%,0%" >
<frame id="p_un" name="p_un" src="portail.html" marginwidth="0" marginheight="0" scrolling="Auto" frameborder="no">
<frame id="p_deux" name="p_deux" src="" marginwidth="0" marginheight="0" scrolling="Auto" frameborder="no">
<frame id="p_trois" name="p_trois" src="" marginwidth="0" marginheight="0" scrolling="Auto" frameborder="no">
</frameset>



</HTA>



et la page portail.html:
<HTML>
<HEAD>
<TITLE>Portail</TITLE>
<script language="JavaScript">
function ModifieTailleFrame (taille,url1,target1,url2,target2,url3,target3)
{
/*modifier la taille des frames*/
parent.frames['principale'].cols=taille;

/*actualiser les frames avec les pages et la langue*/
parent.frames.document.getElementById(target1).src=url1;
parent.frames.document.getElementById(target2).src=url2;
parent.frames.document.getElementById(target3).src=url3;
}
</script>
</HEAD>



Ceci est la page portail.html placé dans la frame p_un


[javascript:ModifieTailleFrame('200,*,25%','page1.html','p_un','page2.html','p_deux','page3.html','p_trois')
Lien
]





</HTML>

reste a faire les page1.html, page2html,et page3.html.

Merci a ceux qui peuvent m'aider...
Afficher la suite 

Votre réponse

32 réponses

Meilleure réponse
David78390 197 Messages postés jeudi 27 avril 2006Date d'inscription 10 juillet 2011 Dernière intervention - 5 sept. 2006 à 14:01
3
Merci
ca y est j'ai trouvé mon bug:
il suffisait de rajouter application="yes" dans les frames,
et de mettre la balise hta dans le head.

Voici donc a quoi ressemble mon fichier index.hta:

<html
<HEAD>
<TITLE>Le Portail DMS (Didalab Matelco STCI)</TITLE>

<hta:application
navigable="yes"
icon="dms.ico"
windowstate="maximize"
maximizebutton="yes"
minimizebutton="yes">

</HEAD>
<!-- frames -->
<frameset id="principale" name="principale" cols="100%,0%,0%" application="yes">
<frame id="p_un" name="p_un" src="portail.html" marginwidth="0" marginheight="0" scrolling="Auto" frameborder="no" application="yes">
<frame id="p_deux" name="p_deux" src="" marginwidth="0" marginheight="0" scrolling="Auto" frameborder="no" application="yes">
<frame id="p_trois" name="p_trois" src="" marginwidth="0" marginheight="0" scrolling="Auto" frameborder="no" application="yes">
</frameset>



</HTML>



En esperant que ca peut en aider d'autre.

Merci bultez de ta patience pour tes explications.

Ciao

Merci David78390 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de David78390
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 1 juin 2006 à 10:00
0
Merci
bonjour,

   les frames font partie de la page,
      donc un .htm peut faire
parent.frames['principale'].cols=taille;



   lancer un .hta, c'est comme lancer un programme indépendant de
      la page actuelle, il ne la connait plus, il est "en dehors" de la page
      qui l'a lancé, il ne peut plus y faire référence.
   pour faire un parallèle, si au lieu de lancer un .hta, on lançait
      nodepad, comment celui-ci pourrait-il "atteindre" la page htm 
      qui l'a lancé ?

   c'est bizarre d'ailleurs de faire comme ça ? à chaque fois, le
      navigateur va proposer de télécharger ou d'exécuter ce .hta !

            cordialement   Bul.   
Site/FONT>
Commenter la réponse de cs_bultez
David78390 197 Messages postés jeudi 27 avril 2006Date d'inscription 10 juillet 2011 Dernière intervention - 1 juin 2006 à 11:04
0
Merci
c'est ce que je craignais car quand je faisais alert(parent.frames.name);
il me ressortait toujours p_un et je n'ai jamais reussit a avoir p_deux ou p_trois.

il y a quand meme quelque chose de bizard
car page1.html apparait bien dans p_un (il reconnait bien le target), mais page2.html se lance dans une nouvelle fenetre (qui prend comme reference p_deux), et page3.html se lance dans une nouvelle fenetre (qui prend comme reference p_trois)

1-D'apres ce que tu me dis si je fait un .hta, il ne faut pas avoir de frame.

2-comment faire pour que le navigateur ne propose pas de télécharger ou d'exécuter ce .hta ! (depuis le debut je faisais mes test sur le DD du PC, mais je vient de la graver et un autorun, et le message apparait)

Merci
Commenter la réponse de David78390
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 1 juin 2006 à 11:19
0
Merci
>>D'apres ce que tu me dis si je fait un .hta, il ne faut pas avoir de frame.



      exactement le contraire...
      si dans une frame, s'il y a un .hta, il sera chargé de manière
         indépendante de la page initiale.
      je ne pense pas (?) qu'un hta interdise les frames.



>>pour que le navigateur ne propose pas de télécharger ou d'exécuter ce .hta 
      impossible sur la toile, c'est comme un exécutable, et pour des problèmes
         de sécurité, il vaut mieux ( hélas )

>>mes test sur le DD du PC, mais je vient de la graver et un autorun, et le message apparait)
      normalement, c'est la même chose. disque dur ou cd/dvdrom,
            le problème n'est pas là
      autorun d'un .hta ===> pas de message.
      htm qui lance un .hta ===> message
      
cordialement   Bul.   
Site

/FONT>
Commenter la réponse de cs_bultez
David78390 197 Messages postés jeudi 27 avril 2006Date d'inscription 10 juillet 2011 Dernière intervention - 1 juin 2006 à 11:37
0
Merci
>>impossible sur la toile,...
non sera sur un CD-ROM pour la presentation de produits.
>>autorun d'un .hta ===> pas de message.
j'ai peut-etre une con***ie sur mon autorun alors:
[AutoRun]
open=explorer index.hta
icon=dms.ico

P.S: serais-tu assez sympa pour faire l'essai (sans autorun pour le moment; je ne voudrais pas te faire un CD pour rien) avec les sources que j'ai mis en haut STP
Commenter la réponse de David78390
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 1 juin 2006 à 11:54
0
Merci
Ce n'est pas index.hta qui donne le message,
   mais portail.hta je pense, non ?

Essayer de ne pas charger un .hta dans une frame
   il ne devrait pas y avoir de messages.

Si c'est la cas, il faut donc voir les choses
   autrement... ( si dans un .hta une frame
   d'un .hta provoque un message, ce sera
   difficile de l'empêcher )
 
cordialement   Bul.   Site
/B>
Commenter la réponse de cs_bultez
David78390 197 Messages postés jeudi 27 avril 2006Date d'inscription 10 juillet 2011 Dernière intervention - 1 juin 2006 à 12:41
0
Merci
>>Ce n'est pas index.hta qui donne le message, mais portail.hta je pense, non ?
L'erreur 'parents.frames.principale' à la valeur NULL ou n'est pas un objet
vient en effet de portail mais il est bien en .HTML

Mon prb original était : Autoriser le contenu actif des CD (qui a pour effet de bloquer le javascript)
Tu m'avait donné l'idée du .hta (meme si j'avais eu du mal a comprendre)
J'en ai donc conclu qu'il était possible de faire index.hta avec des frames qui font appel a des pages en .html
Mais mantenant ma fonction qui marchait correctement, ne marche plus puisque je me peut plus d'accéder au parametres des autres frames (comme tu me l'as dit plus haut).
J'ai l'impression d'etre le serpent qui se mort la queue.
Commenter la réponse de David78390
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 1 juin 2006 à 14:33
0
Merci
>>Mon prb original était : Autoriser le contenu actif des CD

je me souviens...

>>J'ai l'impression d'etre le serpent qui se mort la queue.
parce que tu es très souple, ce qui n'est pas mon cas... et pourtant j'y arrive !
               ( comprenne qui veut )



je me cite : il faut donc voir les choses  autrement




°°°°   si un .htm ( ou .hta ? ) dans une frame !!! 
               ( si "pas dans une frame" c'est possible !!! ) 
               fait appel à un .hta ==> message télécharger ou exécuter

°°°°   si un .hta fait appel à un .htm, bien entendu parent.frames['principale'] 
               n'existe pas dans ce .htm

°°°°   si tout est en .htm, les messages d'autorisation sont insurmontables
               car paramétrage dans le navigateur.

°°°°   ...




cordialement   Bul.   
Site/FONT>
Commenter la réponse de cs_bultez
David78390 197 Messages postés jeudi 27 avril 2006Date d'inscription 10 juillet 2011 Dernière intervention - 1 juin 2006 à 14:39
0
Merci
Donc en conclusion un hta constitué de frames
pourra placer pageX.html dans sa propre frame (ici p_un)
ne pourra jamais placer pageX.html dans une d'autre frame (p_deux ou p_trois)

puisque le hta ne "reconnait que sa frame mere".
Commenter la réponse de David78390
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 1 juin 2006 à 15:04
0
Merci
pas compris...
c'est quoi  sa propre frame ?

si,si... il peut avoir des frames avec des .htm
   ( ces htm peuvent-ils accéder à parent... ? à tester, je doute ? )
   mais placer pageX.htm dans une autre frame ? pas compris non plus

            cordialement   Bul.   
Site



/FONT>
Commenter la réponse de cs_bultez
David78390 197 Messages postés jeudi 27 avril 2006Date d'inscription 10 juillet 2011 Dernière intervention - 1 juin 2006 à 16:31
0
Merci
J'ai fait un essai en mettant des window.open(urlX,targetX);
au lieu des parent.frames.document.getElementById(target1).src=url1;

et <frameset id="principale" name="principale" cols="33%,33%,33%" >

Et voila ce qui c'est passé

en gros la page index.HTA est comme ca:
|----------------------------------------------------------------------------|
|1er frame nomé p_un | 2eme frame nomé p_deux | 3eme frame nomé p_trois |
| affiche portail.html | n'affiche rien | n'affiche rien |
| | | |
-----------------------------------------------------------------------------

portail comporte un lien devrait faire ca: (ca marche si c'est index.HTML)
|----------------------------------------------------------------------------|
|1er frame nomé p_un | 2eme frame nomé p_deux | 3eme frame nomé p_trois |
| affiche page1.html | affiche page2.html | affiche page3.html |
| | | |
-----------------------------------------------------------------------------

mais qui en vrai me fait ca: (en index.hta)
|-----------------------------------------------------------------------------|
|1er frame nomé p_un | 2eme frame nomé p_deux | 3eme frame nomé p_trois |
| affiche page1.html | rien ne se passe | rien ne se passe |
| | | |
------------------------------------------------------------------------------
et ouvre 2 autres fenetres, la 1er affiche page2.html, et la seconde page3.html


Donc si on est avec index.html, on peut acceder à parent.frames p_un, p_deux ou p_trois comme on veut, et y placer la page de notre choix.
Si on est en index.hta, on ne peut acceder qu'à parent.frames p_un pour mettre la page que l'on veut; c.a.d la ou est le lien (ce que j'ai appelé "sa propre frame").
Commenter la réponse de David78390
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 5 sept. 2006 à 14:20
0
Merci
c'est très sympa de nous donner la réponse.
je n'avais pas tout compris... mais comme je 
   suis loin
d'être sûr d'avoir su répondre...
nickel si ça baigne !
<hr />
cordialement   Bul    Site    M'écrire
Commenter la réponse de cs_bultez
David78390 197 Messages postés jeudi 27 avril 2006Date d'inscription 10 juillet 2011 Dernière intervention - 5 sept. 2006 à 17:33
0
Merci
J'ai trouvé l'astuce grace au site de microsoft
(He oui, pour une foi, mais ca a été galere a comprendre car leur exemple était buggé)

je n'avais pas tout compris... => en tout cas merci de t'etre penché sur mon probleme, car mes explications n'etaient pas forcement claires
Commenter la réponse de David78390
NEO III 69 Messages postés jeudi 14 septembre 2006Date d'inscription 10 septembre 2010 Dernière intervention - 28 sept. 2006 à 12:55
0
Merci
Bonjour,


Je crois avoir le solution :


Ajoute les balises <HTML> et </HTML> dans ton HTA, comme pour une page HTML et en lève la balise </HTA>


en espérant que ça marche...  


NEO III
Commenter la réponse de NEO III
NEO III 69 Messages postés jeudi 14 septembre 2006Date d'inscription 10 septembre 2010 Dernière intervention - 28 sept. 2006 à 12:57
0
Merci
je n'ai rien dit, je n'avais pas vu la 2eme page

Désolé.
Commenter la réponse de NEO III
David78390 197 Messages postés jeudi 27 avril 2006Date d'inscription 10 juillet 2011 Dernière intervention - 4 oct. 2006 à 17:12
0
Merci
Commenter la réponse de David78390
francemarieanna 12 Messages postés mardi 11 juillet 2006Date d'inscription 5 décembre 2006 Dernière intervention - 28 nov. 2006 à 04:31
0
Merci
Bonjour,

A vous lire je me dis qu'il est imposible de lancer un hta à partir d'un fichier html sans avoir  un message demandant si je veux exécuter ou enregistrer le fichier hta?

Mais est-il possible de ne pas avoir ce message? et que l'application du fichier hta se lance automatiquement, ou même avoir un message d'exécution mais pas d'enregistrement?

Françoise
Commenter la réponse de francemarieanna
David78390 197 Messages postés jeudi 27 avril 2006Date d'inscription 10 juillet 2011 Dernière intervention - 28 nov. 2006 à 09:28
0
Merci
Je l'ai fait à partir d'un hta ver un autre hta.
Donc ca devrait marcher à partir d'un html.
Essaye ceci:
source VB: http://www.vbfrance.com/code.aspx?ID=40426
Commenter la réponse de David78390
David78390 197 Messages postés jeudi 27 avril 2006Date d'inscription 10 juillet 2011 Dernière intervention - 28 nov. 2006 à 09:47
0
Merci
P.S: pour telecharger la source,
connecte toi avec le login et le mot de passe crée sur ce cite.
Ca fonctionne.

Je ferais l'essai à midi pour voir si ca fonctionne entre html vers hta.
Commenter la réponse de David78390
francemarieanna 12 Messages postés mardi 11 juillet 2006Date d'inscription 5 décembre 2006 Dernière intervention - 28 nov. 2006 à 15:03
0
Merci
Bonjour David,

Je viens juste de rentrer du travail, je regarde à ça dès maintenant et je te dis quoi, merci

Françoise
Commenter la réponse de francemarieanna

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.