Hta et reference aux frames

Résolu
David78390 Messages postés 197 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 10 juillet 2011 - 1 juin 2006 à 09:26
francemarieanna Messages postés 12 Date d'inscription mardi 11 juillet 2006 Statut Membre Dernière intervention 5 décembre 2006 - 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...

32 réponses

David78390 Messages postés 197 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 10 juillet 2011
5 sept. 2006 à 14:01
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
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
1 juin 2006 à 10:00
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>
0
David78390 Messages postés 197 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 10 juillet 2011
1 juin 2006 à 11:04
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
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
1 juin 2006 à 11:19
>>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>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
David78390 Messages postés 197 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 10 juillet 2011
1 juin 2006 à 11:37
>>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
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
1 juin 2006 à 11:54
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>
0
David78390 Messages postés 197 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 10 juillet 2011
1 juin 2006 à 12:41
>>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.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
1 juin 2006 à 14:33
>>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>
0
David78390 Messages postés 197 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 10 juillet 2011
1 juin 2006 à 14:39
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".
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
1 juin 2006 à 15:04
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>
0
David78390 Messages postés 197 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 10 juillet 2011
1 juin 2006 à 16:31
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").
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
5 sept. 2006 à 14:20
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
0
David78390 Messages postés 197 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 10 juillet 2011
5 sept. 2006 à 17:33
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
0
NEO III Messages postés 68 Date d'inscription jeudi 14 septembre 2006 Statut Membre Dernière intervention 10 septembre 2010
28 sept. 2006 à 12:55
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
0
NEO III Messages postés 68 Date d'inscription jeudi 14 septembre 2006 Statut Membre Dernière intervention 10 septembre 2010
28 sept. 2006 à 12:57
je n'ai rien dit, je n'avais pas vu la 2eme page

Désolé.
0
David78390 Messages postés 197 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 10 juillet 2011
4 oct. 2006 à 17:12
0
francemarieanna Messages postés 12 Date d'inscription mardi 11 juillet 2006 Statut Membre Dernière intervention 5 décembre 2006
28 nov. 2006 à 04:31
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
0
David78390 Messages postés 197 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 10 juillet 2011
28 nov. 2006 à 09:28
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
0
David78390 Messages postés 197 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 10 juillet 2011
28 nov. 2006 à 09:47
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.
0
francemarieanna Messages postés 12 Date d'inscription mardi 11 juillet 2006 Statut Membre Dernière intervention 5 décembre 2006
28 nov. 2006 à 15:03
Bonjour David,

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

Françoise
0
Rejoignez-nous