Récupérer donnés depuis sous frame

bond_never_die Messages postés 38 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 15 janvier 2009 - 9 sept. 2008 à 22:24
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 12 sept. 2008 à 09:37
Nous, nous, nous, c'est le gout !

16 réponses

bond_never_die Messages postés 38 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 15 janvier 2009
9 sept. 2008 à 22:31
bon, il y a vraiment un problème, mes premiers posts ne fonctionnement jamais !

Enfin bref, je disais :

Salut à tous,
Je suis en train d'essayer de créer un page permettant aux administrateurs d'un site de rajouter des news sur la page d'acceuil. Le problème que je rencontre est lorsque je tente d'ajouter la possibilité pour les admins de mettre des images dans leurs news.

Pour l'instant j'ai ce code :

function image(obj) {
var x=GetDomOffset(document.getElementById(obj), 'offsetTop') ;
var y=GetDomOffset(document.getElementById(obj), 'offsetLeft') ;

if (navigator.appName.indexOf("Internet Explorer") != -1) {
var zone = document.createElement('iframe');
zone.type='text/html';
zone.src='adm/upload.php';
}
else {
var zone = document.createElement('object');
zone.type='text/html';
zone.data='adm/upload.php';
}
zone.id='image';
zone.style.height='300px';
zone.style.width='500px';
zone.style.overflow='auto';
zone.style.display='block';
zone.style.position='absolute';
zone.style.padding='1px';
zone.style.borderTop='1px solid #DCDCDC';
zone.style.borderRight='1px solid #A9A9A9';
zone.style.borderBottom='1px solid #808080';
zone.style.borderLeft='1px solid #A9A9A9';
zone.style.backgroundColor='#FFF';
zone.style.color="#000000";
zone.style.left= (y-165)+'px';
zone.style.top=(x-100)+'px';



var exit = document.createElement('div');
exit.style.height='16px';
exit.style.width='16px';
exit.style.border='0px';
exit.style.backgroundImage="url('../images/stop.png')";
exit.style.display='block';
exit.style.position='absolute';
exit.style.left= (y+320)+'px';
exit.style.top=(x-120)+'px';

document.body.appendChild(exit);
document.body.appendChild(zone);

exit.onclick=function() {
document.body.removeChild(zone);
document.body.removeChild(exit);
}
zone.getElementById('tagbutton').onclick=function() {
alert('test !');
}

}

Le problème est au niveau du

zone.getElementById('tagbutton').onclick=function() {
alert('test !');
}

car je n'arrive pas à accéder au boutton 'tagbutton' de l'object/iframe créée dynamiquement et contenant une autre page (cf code). Ce boutton devant par la suite retourner la valeur d'un champ (à définir) contenant le nom de l'image qui viens juste d'être uploadée afin de pouvoir l'inclure dans la news.

Ma question est donc : comment accéder aux objets ce cette iframe/object ?

Je ne sais pas si j'ai été suffisament clair, mais n'hésitez pas à me demander des précisions !

Merci d'avance.
0
bond_never_die Messages postés 38 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 15 janvier 2009
9 sept. 2008 à 22:32
C'est quoi cette mise en forme ???


y'as vraiment un gros bug avec mes posts...
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
10 sept. 2008 à 08:35
salut

tu peux essayer d'explorer des objets comme ca :

window.frames["framename"].document

http://www.commentcamarche.net/javascript/jswindow.php3
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
10 sept. 2008 à 10:58
bonjour,

       window.parent.frames['iframe'].tous les éléments de l'iframe
       depuis les autres iframe ou depuis la page mère ( dans ce cas parent est inutile mais fonctionne )
       ( néanmoins uniquement si la page l'est depuis le même domanie )

CordialementBul[mon Site][M'écrire], <!--
0

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

Posez votre question
bond_never_die Messages postés 38 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 15 janvier 2009
10 sept. 2008 à 11:17
Merci pour vos réponses mais j'ai un peu de mal à vous suivre... Si je fait

window.frames['(je met quoi là ?)'].document.getElementById('tagbutton') j'aurais accès à mon bouton ?

Ce serait super mais ceci fonctionne t-il uniquement avec des iframes ou aussi avec object ?
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
10 sept. 2008 à 11:32
avec l'iframe oui... l'object ? lequel ?
>>window.frames['(je met quoi là ?)']
le name de l'iframe :

window.frames['titi']
tout (presque) est array en javascript ;o)
CordialementBul[mon Site][M'écrire], <!--
0
bond_never_die Messages postés 38 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 15 janvier 2009
10 sept. 2008 à 11:38
Hé bien en fait, je sais que mon message est illisible mais en fait je fait ça :


if (navigator.appName.indexOf("Internet Explorer") != -1) {

var zone = document.createElement('iframe');

zone.type='text/html';

zone.src='adm/upload.php';

} else {

var zone = document.createElement('object');

zone.type='text/html';

zone.data='adm/upload.php';

}

zone.id='image';


En gros si le client est IE je crée une iframe, sinon un object (il me semble que c'est mieux après peut-être que je me trompe mais object me semble plus fexible...)

Sinon il faut donc que je rajoute un truc comme

zone.name='maframe';

je fait ça de suite !!
0
bond_never_die Messages postés 38 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 15 janvier 2009
10 sept. 2008 à 11:43
Je ne comprend pas, je viens de faire ça et lorsque je teste ma page, la console javascript me sort :

Webpage Script Errors


User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; WOW64; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)

Timestamp: Wed, 10 Sep 2008 09:41:33 UTC


Message: 'window.frames.image.document' is null or not an object

Line: 171

Char: 2

Code: 0

URI: http://www.cappelle-chess.fr/fr/dhtml.js


Message: Object doesn't support this property or method

Line: 50

Char: 1

Code: 0

URI: http://www.cappelle-chess.fr/fr/default.php?page=admin&mod=addnews


Me serais-je trompé quelque part ?
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
10 sept. 2008 à 14:23
>>En gros si le client est IE je crée une iframe, sinon un object
quelle drôle d'idée ?
l'un et l'autre fonctionne avec tous les navigateurs
et non pas du tout la même utilisation.
>>'window.frames.image.document
euh... c'est tu veux faire quoi là ?
windows.frames['name de la frame'].... les élements de la page dans l'iframe
comme si c'était dans la page même au fond.
windows.images.document... ça ne fonctionne pas non plus ça !

CordialementBul[mon Site][M'écrire], <!--
0
bond_never_die Messages postés 38 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 15 janvier 2009
10 sept. 2008 à 16:29
>>quelle drôle d'idée ?

>>l'un et l'autre fonctionne avec tous les navigateurs

>>et non pas du tout la même utilisation.

Hé bien en fait, à la base je voulais mettre des object partout (dues au fait que iframe n'existe pas en xhtml 1.0 strict) mais il m'est apparu que ceux ci n'était pas forcément très bien supportés par IE, voir carrément très mal...


>>'window.frames.image.document

ça c'est que la console d'erreur de IE me dit, moi en fait j'ai écrit :

window.frames['image'].document.getElementById('tagbutton').onclick=function() {

alert('test !');

}

avec zone.name='image'; pour correspondre à ce que tu m'a dit plus haut...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
10 sept. 2008 à 16:54
window.frames['name du frame'].document.getElementById('id de l'élement')...
ça doit le faire ... non, non : ça l'fait !

page principale :

        go

p1.htm

CordialementBul[mon Site][M'écrire], <!--
0
bond_never_die Messages postés 38 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 15 janvier 2009
10 sept. 2008 à 17:12
Bon alors j'ai tout passé en iframe, quel que soit le navigateur et j'ai fait exactement ce que tu m'as dit au dessus.

Point positif : ça marche très bien sous Opera.

Points négatifs : ça ne marche ni sous IE ni sous firefox... :(

Une idée ?
0
bond_never_die Messages postés 38 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 15 janvier 2009
10 sept. 2008 à 17:15
Je précise que j'obtiens ce message d'erreur sous firefox :


Erreur : window.frames.image.document is undefined

Fichier Source : http://www.cappelle-chess.fr/fr/default.php?page=admin&mod=addnews

Ligne : 1


Et sous IE plus ou moins la même chose. Note au passage que j'ai bien écrit window.frames['toto'].document... et non window.frames.image.document comme l'indique le message d'erreur...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
11 sept. 2008 à 08:27
euh... mon exemple fonctionne pourtant...
pas de raison....
( ça ne vient même pas du name "image" qui me gênait... j'ai essayé )
l'erreur est provoquée par je ne sais quoi ? ailleurs ? par autre chose ?
peut-on voir ça quelque part ?
Cordialement     Bul  [mon Site] [M'écrire], <!--
0
bond_never_die Messages postés 38 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 15 janvier 2009
11 sept. 2008 à 20:10
Merci de ton aide mais finalement j'ai résolu mon problème autrement : j'enregistre le nom de l'image dans un cookie que je récupère ensuite via XmlHttpRequest pour l'ajouter dans ma zone de text. C'est peut-être un peu tordu mais ça marche, c'est l'essentiel :)
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
12 sept. 2008 à 09:37
vaut-il mieux comprendre sans résoudre ou résoudre sans comprendre ?
sûr que l'essentiel c'est que ça baigne,
et l'essentiel, c'est le principal
j'eusse néanmoins aimé comprendre... tant pis

Cordialement     Bul  [mon Site] [M'écrire], <!--
0
Rejoignez-nous