2010-02-03 4 views
1

Je travaille sur un site Web et je souhaite actualiser une partie de la page après l'installation d'un composant ActiveX . J'ai une idée générale de la façon de le faire avec vote, que je travaille sur l'obtention aller:Je souhaite détecter de manière interactive l'installation d'un composant ActiveX et rafraîchir une partie de la page de manière asynchrone

function detectComponentThenSleep(){ 

    try{ 
     // Call what I want ActiveX for, if the method is available, or 
     // ActiveXComponent.object == null --- test for existance 
     document.getElementById("ActiveXComponent").someMethod(); 
    } 
    catch{ 
     // Try again, if the method is not available 
     setTimeout(detectComponentThenSleep, 100); 
    } 
} 

Cependant, ce que je voudrais vraiment faire est quelque chose comme ceci:

ActiveXObject.addListener("onInstall", myfunction); 

I Je n'ai pas la source du composant ActiveX, mais j'ai le contrôle complet de la page sur laquelle je l'héberge. Je voudrais utiliser JavaScript, si possible, pour y parvenir. Donc, ma question est 1.) cela fonctionnera-t-il réellement avec la méthode d'interrogation? et 2.) Y a-t-il une façon d'interrompre/d'écouter de la sorte? Je suis sûr qu'il me manque quelque chose avec la connexion des points ici, je peux déjà détecter si le composant est présent, mais j'ai du mal à le faire de manière asynchrone.

Merci beaucoup pour votre temps et votre aide,

-Brian J. Stinar-

Répondre

0

1.) Cela ne fonctionne pas du tout avec le mode de scrutin. 2.) Je n'ai pas trouvé de façon d'interruption/écoute de faire ceci.

J'ai finalement fini par mettre tout ce composant ActiveX sur sa propre page. ActiveX fait une mise à jour de la page lors de l'installation, donc j'ai simplement eu le comportement de la page par défaut comme ce que je voulais arriver quand le composant n'était pas disponible. C'est différent de ce que j'essayais de faire, mais cela a fonctionné correctement pour mes objectifs.

Ma recommandation à quiconque dans une situation similaire est de simplement mettre le composant ActiveX sur sa propre page, et de transmettre des données de cette page. Sinon, vous allez probablement avoir beaucoup de problèmes que j'ai eu.

-Brian J. Stinar-

+1

vous pourriez être en mesure d'utiliser une page iframe'd, qui traiterait l'ensemble et obtenir un « asynchrone ish » feel to it ... – jvenema

+0

Merci beaucoup pour cette suggestion. C'est une conclusion très logique à venir après ma solution page séparée, et j'aurais aimé mettre en œuvre votre idée à l'époque. Si mon client veut une refonte à ce sujet, je vais certainement essayer cette idée à l'époque. Merci beaucoup. J'aime vraiment ta suggestion. -Brian J. Stinar- –