1

新しいActiveXObject( 'AcroPDF.PDF')を使用してAdobe Readerバージョン7以上を検出しています。ちょうど最近、Adobe Readerで更新プログラムが公開されています。今、私はそのコードを実行しようとします。それはちょうど「死ぬ」。他の誰かが同じ問題を経験していますか?ご意見やご提案は大歓迎です。IEのアドビリーダーを検出する

ありがとうございます。

注:IE8。 Adobe Reader X. Windows XP。

答えて

0

progIdではなくCLSIDで実行しようとしましたか?私が間違っていない場合、CLSIDはCA8A9780-280D-11CF-A24D-444553540000です。

「死んでいる」ということを明確にすることはできますか?


更新

var checkAdobeReaderAvailability = function (displayMessageDelegate) { 
      var dynamicObject = document.createElement("object"); 
      dynamicObject.onreadystatechange = function (x) { 
       if (dynamicObject.readyState === 4) { 
        if (displayMessageDelegate !== undefined && typeof displayMessageDelegate === 'function') { 
         displayMessageDelegate(); 
        } 
       } 
      } 
      dynamicObject.classid = 'CLSID:CA8A9780-280D-11CF-A24D-444553540000';   

      document.getElementById('host').appendChild(dynamicObject) 
     } 

     var checkAdobeReaderAvailabilityWithProgId = function (displayMessageDelegate) { 
      var ax = new ActiveXObject('AcroPDF.PDF'); 

      displayMessageDelegate(ax); 
     } 
     var onload = function() { 
      checkAdobeReaderAvailability(function() { alert('Done!'); }); 
      checkAdobeReaderAvailabilityWithProgId(function() { alert('Done!'); }); 
     } 
+0

あなたがCLSIDによって何を意味するかわかりません。これをもっと明確にしないと申し訳ありません。私は新しいActiveXObject( 'AcroPDF.PDF')を呼び出してAdobe Readerを検出するためにJavascriptを使用しています。それは私のために働いていましたが、Readerの最新のアップデート後ではありませんでした。私が「死んでいる」とは、私にActiveXObjectのインジケータを与える警告機能を持っているということですが、警告ではオブジェクトの代わりにnullが返されるようになりました。 – Nebby

+0

ActiveXを手動でインスタンス化するには、progIdを使用して、使用したものを1つ使用する方法が一般的です。 Adobe PDF XのProgIdはAcroPDF.PDFです。しかし、さまざまな要因(セキュリティ、レジストリなど)で何かが間違っている可能性があるので、activexを呼び出すための他のオプションを選択することもできます。ページにOBJECT DOM要素(非表示)を作成し、属性classidを送信したGUIDに設定します。試してみるためにコードスニペットが必要な場合はお知らせください。 –

+0

私は参照してください。あなたがGUIDを使って確認できるかどうかはわかりませんでした。 1つのPCから別のPCにGUIDを変えることはできますか? IEのバージョン(IE7からIE8、IE9など)から取得することができます。しかし、私はコードスニペットを取得したいと思います。それは非常に役に立ちます。ありがとうございました。 – Nebby

関連する問題