begin process at 2012 05 29 04:45:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

Framework

 > 

Prototype, Script.Aculo.us

 > 

[débutant] prototype.js détruit mes liens COM


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[débutant] prototype.js détruit mes liens COM

dimanche 9 novembre 2008 à 13:15:44 | [débutant] prototype.js détruit mes liens COM

Claveau PONX

Bonjour !

J'utilise IE+Jscript comme GUI, massivement lié, par COM. Et, je voudrais bien essayer prototype.js

Le problème, c'est que le seul fait d'ajouter la ligne :
      <script type="text/javascript" src="prototype.js"></script>
Modifie (trop) l'accès aux objets/données. Même si je n'utilise aucune des possibilités de prototype

Par exemple, un array global, auquel j'accède (lecture/écriture) sans problème, est transformé en une fonction, et ne me fournit plus qu'un accès... au code-source de la fonction !

J'ai cherché un peu sur Internet, sans rien trouver. L'idéal serait un moyen d'accéder aux données originales, en court-circuitant la délégation de prototype.
Certes, je pourrais passer par des fonctions proxies, mais cela m'obligerait à revoir trop profondémment mon code.

Si quelqu'un a une idée géniale, je suis preneur, et je l'en remercie d'avance.

--
MCI


 
dimanche 9 novembre 2008 à 14:19:59 | Re : [débutant] prototype.js détruit mes liens COM

Bul3

Membre Club

bonjour,

>>j'utilise IE+Jscript comme GUI, massivement lié, par COM
j'ai rien compris...
JScript au fond du javascript avec des exclusivités Internet Explorer
sauf cas particuliers ( j'en use et j'en abuse d'ailleurs ) ces exclusivités sont surmontables
>>GUI massivement lié par COM
mon foie, là je ne vois même pas à quoi tu fais référence !

>>un array global, auquel j'accède (lecture/écriture) sans problème,
ben oui... un array c'est une "variable"... heureux qu'on puisse en
      traiter le contenu

>> est transformé en une fonction, et ne me fournit plus qu'un accès
>>au code-source de la fonction !
mon foie, là je ne vois même pas à quoi tu fais référence !
un array c'est un array... et prototype n'y change rien
considère que prototype, c'est une bibliothèques de fonctions,
( et pas plus ;o) et que les bases de javascript n'y sont pas
remis en cause... il ne pourrait d'ailleurs pas le faire.

>>n court-circuitant la délégation de prototype.
bah...
soit tu utilises et profite de ses fonctionnalités
soit tu n'utilise pas
soit tu utilises mais rien ne t'empêche d'y ajouter du JS "normal" et "classique"

>> je pourrais passer par des fonctions proxies
mais encore ? c'est quoi ça ?

>>Si quelqu'un a une idée géniale
on est tous géniaux sur CodesSources, mais franchement
    tu nous donnes trop peu d'éléments pour t'aider à résoudre un
    probable souci que tu dois avoir ! tu ne nous parles que de généralités,
    avec des termes ambigües, tu philosophes plus qu'autre chose.
    qu'est-ce qui ne fonctionne pas, concrètement ?
    un ch'tiot extrait  du code qui pose problème ?

Cordialement

          Bul [mon Site] [M'écrire]         
                 Membre du CCC~0

dimanche 9 novembre 2008 à 19:25:50 | Re : [débutant] prototype.js détruit mes liens COM

Claveau PONX

Re !

Je vais essayer d'expliciter un peu plus, mais en résumant, pour ne pas être trop long.

COM, c'est une technologie de communication entre objets. C'est elle qui est au coeur d'Active-X, de OLE, Ole-automation, OCX, etc.
Lorsque l'on pilote Internet-Explorer via Ole-automation, depuis un langage quelconque, les objets du DOM, et les objets globaux de JScript deviennent accessibles au langage appelant, en tant que propriétés de l'objet IE.

Je pratique souvent cela, depuis Python, Autoit, JScript (de CScript), ObjectPAL, etc.


Voici un petit exemple :

Le fichier  C:\titi.htm, contenant le JScript :

<html><body>
<script language="JavaScript" type="text/javascript">
montableau = new Array(111,222,333,444);

function visu(txt){
 alert(txt +":"+montableau);
}
</script>
</body></html>

 

Le script Python qui utilise titi.htm :

import win32com.client
ie=win32com.client.Dispatch('InternetExplorer.Application')
ie.Navigate('file:///C:/titi.htm')
ie.Visible=True
win=ie.Document.parentWindow
win.visu("Appel: ")    #==> affiche "Appel: 111,222,333,444" dans IE
print win.montableau[1]    #==> affiche 222

Jusque là, ça marche. Le lien COM qui lie win (dans Python) avec window (dans JScript) transmet bien les propriétés comme montableau ou visu()

 

Le problème.

Si je rajoute, dans titi.htm, cette ligne :
   <script language="JavaScript" type="text/javascript">

Voilà ce que donne ensuite  print win.montableau[1]  :

"function(item, i) {
  i || (i = 0);
  var length = this.length;
  if (i < 0) i = length + i;
  for (; i < length; i++)
    if (this[i] === item) return i;
  return -1;
}"

La transformation est bien le fait de prototype.js ; d'ailleurs, si j'enlève la ligne, ça refonctionne correctement.

J'espère avoir été plus clair.

dimanche 9 novembre 2008 à 19:33:42 | Re : [débutant] prototype.js détruit mes liens COM

Claveau PONX

Oups !

La ligne rajoutée, qui pose problème, c'est : 
      <script type="text/javascript" src="prototype.js"></script>
(je m'étais gourré dans le copier/coller ; désolé)

@+
--
MCI


lundi 10 novembre 2008 à 10:32:25 | Re : [débutant] prototype.js détruit mes liens COM

Bul3

Membre Club
rien d'anormal dans titi.htm
dans le script python je ne peux pas réellement dire,
       mais on fait  l'équivalent en javascript, ça doit baigner

    function lancerie(quoi)    //~~ lancer Internet Explorer ~~
    {    var objExplorer = new ActiveXObject("InternetExplorer.Application");
        if ( objExplorer!=null )
        {    objExplorer.Visible= 1;
            try                {    objExplorer.Navigate(quoi);    }
            catch(erreur)  {    }
        }
    }

pour ce qui se passe ensuite avec prototype,
le "win", ou je ne sais quoi... y est redéfini ?
faudrait un spécialiste de prototype
je doute que ce soit ton tableau en lui même...

          Bul [mon Site] [M'écrire]         
Membre du CCC#0

lundi 10 novembre 2008 à 12:48:49 | Re : [débutant] prototype.js détruit mes liens COM

Claveau PONX

Re !


> je doute que ce soit ton tableau en lui même...

Je sais que prototype.js ajoute dynamiquement, dès son chargement, des méthodes au prototype de Array  (entre autres modifications). 
Comme Javascript est un langage qui utilise la POO par prototype, toutes les instances de Array sont affectées par ces modifications.
Résultat, Array avec prototype.js et Array sans prototype.js sont des implémentations (devenues) différentes de Array.


> faudrait un spécialiste de prototype

C'est pour cela que j'avais choisi ce forum. Il faudrait également que ce spécialiste connaisse la programmation sous Windows.
Et aussi, je doute que le concepteur de prototype.js ait pris en compte les utilisations "non-Web" de Javascript.


> l'équivalent javascript

Voici un strict équivalent du script Python présenté plus haut (à lancer de cette façon :  cscript  test.js) :

var ie = new ActiveXObject("InternetExplorer.Application");
ie.Navigate('file:///C:/titi.htm');
ie.Visible=1;
var win=ie.Document.parentWindow;
win.visu("Appel: ");    //==> affiche "Appel: 111,222,333,444" dans IE
WScript.StdOut.Write(win.montableau[1]);    //==> affiche 222


lundi 10 novembre 2008 à 13:18:09 | Re : [débutant] prototype.js détruit mes liens COM

Bul3

Membre Club
>>prototype.js ajoute dynamiquement, dès son chargement, des méthodes au prototype de Array
certes, on fait tous ce genre de choses... mais il ne change pas l'array en lui même
mais bon... ne connaissant pas du tout prototype ( et ne voulant pas trop connaitre, pour l'instant )...
          Bul [mon Site] [M'écrire]       



Cette discussion est classée dans : débutant, js, détruit, prototype, com


Répondre à ce message

Sujets en rapport avec ce message

Soucis entre 2 prototype.js [ par zelulu ] Bonjour à vous, je souhaite utiliser lightbox ou lightwindows sur mon site internet, j'ai un pti soucis, c'est que mon site utilise déjà prototype.js Placer la météo (.js) sur ma page (débutant) [ par fdelaruelle ] bonjour, j'aimerai pouvoir placer ma vignette météo où je veuxtype ".img8{position: absolute; top: 500px; left: 625px;}"Comment faire ?<script languag JS & PHP [ par rakizm ] sali tous :)c'est encore moi voilà je voudrais utiliser un truc du genre ceci:function verif(){var xx = }&lt Prototype et Array [ par syndrael ] Bonjour, Dans Script.Aculo.us (dernière version) on peut lire les ajouts dans Array. Comme ceci:Object.extend(Array.prototype, {   _each: function(ite detecter en JS la fin de chargement d'une image [ par nosor ] hi, Ci dessous ex simple je veux activer un diaporama en js ça marche mais le pb est comment attendre que:  document.images.show.src = document.formna Détection 'Activation des scripts JS' [ par Epoc22 ] Bonjour tout le monde ! Alors voilà je suis sur un gros projet écrit en PHP/MySQL et là - c'est rare - j'ai besoin d'une source JS qui permette de dét le signe dollar en JS [ par knabis2000 ] Salut a tous,voila je vient de recuperer un code javascript sur internet et je suis tombé sur un truc que je n'avait jamais vu :element = $(element); Envoyer des données javascript à un serveur [ par DMK04 ] Bonjour, Je débute un peu en développement web, et je suis bloqué (normal...).Reprenez moi si je me trompe, ou si je ne suis pas clair. Pour commenc Manipuler fichiers css externes avec js [ par way2web ] Bonjour,j'aimerais savoir s'il est possible de contrôler le choix des feuilles de style externes avec du javascript, comment écrire dans le head d'un Actualisation toutes les X minutes coté serveur [ par newsmatique ] Bonjour,Je suis vraiment débutant de chez débutant en JavaScript et Ajax, je connais surtout le php, mais je voudrais faire un compte à rebour du type


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales