Onload

davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 - 21 nov. 2008 à 10:30
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 - 21 nov. 2008 à 16:00
Bonjour,

J'ai Encore un soucis...

Le 1er chalenge va être de l'expliquer....

Page parent:
(fonction chargé dans le head de la page parent, le déclanchement de cette fonction ce fait dans la balise )
<script>
    function onLoad()
    {
        var f1 = nitobi.loadComponent("fisheye1");
        alert('test');
    }
</script>

(cette fonction rafraichis la page enfant)
function metsAJour(titre, contenu, largeur, hauteur, style, id_fentre, urlpage) {
    if  (document.cookie) {
        var url = urlpage;
        var pars = '';
        var target = 'cible';
        var myAjax = new Ajax.Updater(target, url, {method: 'POST', parameters: pars, onComplete : fenetre(titre, contenu, largeur, hauteur, style, id_fentre)});
    }else{
        quitte();
    }
}

(déclenchement de la fonction sur la page parent)
[# ', 'votre_profile', './pages/mon_profile/mon_profile.php');"><?php echo _monprofile;?>]</li>
          <li>[# <?php echo _creecompte;?>]

Page enfant:

&nbsp;
<ntb:fisheye id="fisheye1" growpercent="200" opendirection="down" expanddirection="right" iconwidth="50" theme="nitobi">
    <ntb:menuitem imagesrc="images/Printer.png"      label="New File"></ntb:menuitem>
    <ntb:menuitem imagesrc="images/Printer.png"    onclick="window.alert('test');" label="Delete File"></ntb:menuitem>
    <ntb:menuitem imagesrc="images/Printer.png"       label="Edit File"></ntb:menuitem>
    <ntb:menuitem imagesrc="images/Printer.png"      label="Search File"></ntb:menuitem>
    <ntb:menuitem imagesrc="images/Printer.png"       label="Export File"></ntb:menuitem>
    <ntb:menuitem imagesrc="images/Printer.png"       label="Flag File"></ntb:menuitem>
</ntb:fisheye>

Ca marche pas! Normal car la fonction s'exécute dans dans la page parent... Alors pour tester j'ai fait ca:

onclick="onLoad()">&nbsp;
<ntb:fisheye id="fisheye1" growpercent="200" opendirection="down" expanddirection="right" iconwidth="50" theme="nitobi">
    <ntb:menuitem imagesrc="images/Printer.png"      label="New File"></ntb:menuitem>
    <ntb:menuitem imagesrc="images/Printer.png"    onclick="window.alert('test');" label="Delete File"></ntb:menuitem>
    <ntb:menuitem imagesrc="images/Printer.png"       label="Edit File"></ntb:menuitem>
    <ntb:menuitem imagesrc="images/Printer.png"      label="Search File"></ntb:menuitem>
    <ntb:menuitem imagesrc="images/Printer.png"       label="Export File"></ntb:menuitem>
    <ntb:menuitem imagesrc="images/Printer.png"       label="Flag File"></ntb:menuitem>
</ntb:fisheye>

Et la lorsque que je clique sur la div de la page enfant ça marche!

Mais j'ai besoin que cette fonction ce charge automatiquement a l'ouverture de la page enfant...

-Mettre une balise dans la page enfant, ça marche pas!
-Étrangement les balise <script> n'ont pas l'aire de marcher dans la page enfant, c'est surement du à la fonction d'appel de la page enfant dans la page parent...

Qui a une idée???

Merci

Az

8 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
21 nov. 2008 à 11:22
>>>Mettre une balise dans la page enfant, ça marche pas!

et pourquoi donc ?
il n'y a aucune raison !

>>les balise <script> n'ont pas l'aire de marcher dans la page enfant
il semble que tu utilises ajax, non ?
( ce n'est donc pas une page enfant !! )
le javascript n'est effectivement pas exécuté, il faut
    que tu le fasses toi-même, "manuellement"
    met plutôt tes fonctions dans la page mère !
    ce sera bien plus simple.

Cordialement

          [mon Site] [M'écrire] Bul         
0
davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 1
21 nov. 2008 à 12:41
En faite la page enfant ne ce charge pas dans une Iframe mais entre 2 balises
.

Le body de la page parent ce charge bien avant la page enfant c'est a cause de ça que je ne peux pas la déclencher a partir de la page dans la page parent.

C'est vraiment naze comme problème mais il n'y a rien faire je trouve pas de solutions...

En faite je cherche un déclencheur sur la balise div ou autre mais je vois pas...

Az
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
21 nov. 2008 à 12:50
>>En faite la page enfant ne ce charge pas dans une Iframe mais entre 2 balises

ben oui... si on utilise ajax...

>>c'est a cause de ça que je ne peux pas la déclencher
ben non. c'est parce que le javascript d'un html chargé avec ajax n'est pas interprété !
tu dois le faire toi même

>>En faite je cherche un déclencheur sur la balise div
ça ne fonctionnera pas, enfin pas avec tous les navigateurs
mais si tu utilises ajax... fait donc le boulot à la suite du retour d'ajax !

          [mon Site] [M'écrire]   Bul         
0
davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 1
21 nov. 2008 à 13:05
Pourtant j'ai tenté ca dans la page enfant:

&nbsp;
debut javascript

<script type="text/javascript">
onLoad();
</script>
fin javascript

<ntb:fisheye id="fisheye1" growpercent="200" opendirection="down" expanddirection="CENTER" iconwidth="50" theme="tiger">
    <ntb:menuitem imagesrc="images/Printer.png"      label="New File"></ntb:menuitem>
    <ntb:menuitem imagesrc="images/Printer.png"    onclick="window.alert('test');" label="Delete File"></ntb:menuitem>
    <ntb:menuitem imagesrc="images/Printer.png"       label="Edit File"></ntb:menuitem>
    <ntb:menuitem imagesrc="images/Printer.png"      label="Search File"></ntb:menuitem>
    <ntb:menuitem imagesrc="images/Printer.png"       label="Export File"></ntb:menuitem>
    <ntb:menuitem imagesrc="images/Printer.png"       label="Flag File"></ntb:menuitem>
</ntb:fisheye>

Ca marche pas... Pire! En regardant la DOM il est même pas interprété...

Copie de la DOM:

<div id="cible"><div style="background-color: rgb(255, 0, 0);">&nbsp;
debut javascript<br>

fin javascript <br>
<ntb:fisheye id="fisheye1" growpercent="200" opendirection="down" expanddirection="CENTER" iconwidth="50" theme="tiger">
<ntb:menuitem imagesrc="images/Printer.png" label="New File"></ntb:menuitem>
<ntb:menuitem imagesrc="images/Printer.png" onclick="window.alert('test');" label="Delete File"></ntb:menuitem>
<ntb:menuitem imagesrc="images/Printer.png" label="Edit File"></ntb:menuitem>
<ntb:menuitem imagesrc="images/Printer.png" label="Search File"></ntb:menuitem>
<ntb:menuitem imagesrc="images/Printer.png" label="Export File"></ntb:menuitem>

<ntb:menuitem imagesrc="images/Printer.png" label="Flag File"></ntb:menuitem>
</ntb:fisheye>

...

Az
</div>
0

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

Posez votre question
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
21 nov. 2008 à 13:38
tu ne comprend pas ?
ce que tu appelles ta page enfant ( qui n'en est pas une ) , est chargé avec ajax
c'est donc retourné dans une variable javascript.
  à toi d'en faire ce que tu en veux.
  mais le javascript, par exemple, n'y est pas interprété !
  ( euh ... déjà dit 3 fois ça non ? )

à mon humble avis, d'ailleurs, retourner une page html+javascript
   avec ajax est une aberration.
   ajax c'est conçu pour retourner des données ! sinon, il faut
   utiliser une communication normale serveur/client
 
          [mon Site] [M'écrire]  Bul        
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
21 nov. 2008 à 13:49
c'est à dire que dans ta "page  enfant" tu peux mettre autant de onload que tu veux,
autant d'appel au javascript que tu veux, dans des évênnements sur des balises ou pas,
du <script>...</script> en veux-tu en voila.......
rien n'est exécuté ! et quand je dis rien : ben, c'est rien.

regarde les bibliothèques de fonctions ou même GAG qui te montrent
           comment faire que le javascript soit traité !

mais franchement :  c'est une bétise que de faire comme çà.

          [mon Site] [M'écrire]  Bul         
0
davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 1
21 nov. 2008 à 15:37
Grâce a tes explications j'ai compris d'où venait le problème, (problème que tu as parfaitement cerné d'ailler)...

Toute fois il m'est impossible de fonctionner en client-serveur, quand a la solution GAG j'ai pas tous compris...

N'y aurait t'il pas une autre solution simple? Même si moche...

Az
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
21 nov. 2008 à 16:00
>>une autre solution simple

1° n'utilises pas ajax en retournant du javascript ! c'est ça le plus simple.
    met tes fonctions dans la page appelante.
    quand je parlais de "communications normale client / serveur " je pensais
        à des communications normales php <> html/javascript, à savoir
        avec des formulaires par exemple.

2° tu peux
    coller tes réponses d'ajax dans un  div
    faire une boucle sur le_div.getElementsByTagName('script').length
                           et   eval(le_div.getElementsByTagName('script')[index].text);

3° si tu y tiens... utilise l'une de ses bibliothèques de fonctions
       qui te le proposent tous ( mais bon, je ne considère pas ça plus simple )

4° XTremDuke dans un message qui parlait de la même chose il y a peu de temps,
    nous donnait une autre manière de faire.
    ( que je n'ai pas noté je t'avoue que je n'utiliserais pas, pas plus que "gag" d'ailleurs )

Cordialement

          [mon Site] [M'écrire] Bul         
0
Rejoignez-nous