2009-03-12 10 views
1

J'essaie d'obtenir du javascript pour parler à un contrôle ActiveX. Lorsque cela fonctionne et que le JS peut obtenir le statut des contrôles, je reçois un certain message. Sinon, je reçois un message d'erreur.Contrôle ActiveX ne fonctionne pas dans IE6

Dans IE7/8, vous êtes invité à accepter le contrôle activex (via la barre d'avertissement), mais dans IE6, les js ne peuvent tout simplement pas obtenir l'état des contrôles.

J'ai également essayé de créer le contrôle en utilisant document.write à partir d'un fichier externe afin qu'il puisse s'exécuter dès le chargement de la page. Le contrôle est invisible, donc je ne peux pas dire juste en regardant la page si elle est chargée du tout.

J'apprécierais votre aide.

Répondre

1

Il est probable que le mécanisme d'activation du contrôle ActiveX a démarré dans IE7, mais je pensais qu'il devait être supprimé ultérieurement dans un service pack. C'est une douleur majeure pour les développeurs de contrôles et les auteurs de pages Web.

Cet article donne des renseignements généraux et des conseils: http://msdn.microsoft.com/en-us/library/ms537508.aspx

Il y a aussi des informations utiles ici: http://blogs.msdn.com/ie/archive/2007/11/08/ie-automatic-component-activation-changes-to-ie-activex-update.aspx

+0

J'ai marqué cela comme la bonne réponse parce que tout cela est vrai et fait trébucher les gens, mais comme il s'est avéré que microsoft a ajouté un killbit pour le contrôle activex que j'utilisais dans un mise à jour de sécurité, et cela a été l'arrêt du contrôle en cours d'exécution. –

0

pour activer un contrôle dans IE après la mechinism automatique (ou avant) a été désactivé en raison de la poursuite placer une balise de script dans le code HTML comme suit

<script src="control.js"></script> 

puis créez un fichier control.js dans la racine du site comme celui-ci: (vous avez bien sûr à modifier le script pour le classid de votre commande et il est parms - mais vous voyez l'idée)

document.write('<OBJECT align=left classid="CLSID:8BD21D30-EC42-11CE-9E0D-00AA006002F3" id=Customer style="HEIGHT: 23px; text-align:left; LEFT: 0px; TOP: 100px; WIDTH: 160px" tabIndex=4 width=75 onchange="NewCustomer" VIEWASTEXT>'); 
document.write('<param name="VariousPropertyBits" value="746604571">'); 
document.write('<param name="BackColor" value="2147483653">'); 
document.write('<param name="ForeColor" value="2147483656">'); 
document.write('<param name="MaxLength" value="0">'); 
document.write('<param name="BorderStyle" value="0">'); 
document.write('<param name="ScrollBars" value="0">'); 
document.write('<param name="DisplayStyle" value="3">'); 
document.write('<param name="MousePointer" value="0">'); 
document.write('<param name="Size" value="4233;609">'); 
document.write('<param name="PasswordChar" value="0">'); 
document.write('<param name="ListWidth" value="0">'); 
document.write('<param name="BoundColumn" value="1">'); 
document.write('<param name="TextColumn" value="65535">'); 
document.write('<param name="ColumnCount" value="1">'); 
document.write('<param name="ListRows" value="8">'); 
document.write('<param name="cColumnInfo" value="0">'); 
document.write('<param name="MatchEntry" value="1">'); 
document.write('<param name="ListStyle" value="0">'); 
document.write('<param name="ShowDropButtonWhen" value="2">'); 
document.write('<param name="ShowListWhen" value="1">'); 
document.write('<param name="DropButtonStyle" value="1">'); 
document.write('<param name="MultiSelect" value="0">'); 
document.write('<param name="Value" value>'); 
document.write('<param name="Caption" value>'); 
document.write('<param name="PicturePosition" value="458753">'); 
document.write('<param name="BorderColor" value="2147483654">'); 
document.write('<param name="SpecialEffect" value="2">'); 
document.write('<param name="Accelerator" value="0">'); 
document.write('<param name="GroupName" value>'); 
document.write('<param name="FontName" value="Arial">'); 
document.write('<param name="FontEffects" value="1073741824">'); 
document.write('<param name="FontHeight" value="165">'); 
document.write('<param name="FontOffset" value="0">'); 
document.write('<param name="FontCharSet" value="0">'); 
document.write('<param name="FontPitchAndFamily" value="2">'); 
document.write('<param name="ParagraphAlign" value="1">'); 
document.write('<param name="FontWeight" value="400">'); 
document.write('<param name="autoStart" value="-1"></object>'); 

autoStart = -1 étant celui d'importation pour l'obtenir l'exécution automatique (une fois installé). Vous souhaitez probablement ajouter un CODEPATH tpo à l'objet qui pointe vers un fichier control.CAB à installer également. (Je n'avais pas besoin de ceci dans mon cas)

Questions connexes