使用activeX时有条件加载activeX事件

 

   我们在使用ActiveX时一般会在页面中直接增加事件。如下例:

  1)调用语音TTS的ActiveX

<script type="text/javascript" language="javascript">
       
var VoiceObj = null;    //TTS object
       VoiceObj = new ActiveXObject('Sapi.SpVoice'); 
</script>

  2)在页面底部增加语音ActiveX的播放完成事件。

    <script type="text/javascript" language="javascript">
        
function VoiceObj::EndStream() 
        { 
            OldTtsCount
--
        }
    
</script>


   可是问题来了。用户使用带有ActiveX的页面时,会提示用户是否加载ActiveX。如果用户不加载ActiveX时,否则会报错。这时我们应当判断用户是否加载了ActiveX,并且,当用户加载了ActiveX后再增加ActiveX相关的事件。解决方法如下。

 1) 在加载时,通过捕获异常的方式来判断ActiveX的加载。

<script type="text/javascript" language="javascript">
   
var VoiceObj = null;    //TTS object    
    if( VoiceObj==null ){  
        
try { 
            VoiceObj 
= new ActiveXObject('Sapi.SpVoice'); 
        } 
catch(err) { 
            VoiceObj
=null
        } 
    }
</script>


2)判断ActiveX对象为空时,就不加载对象。

    <script type="text/javascript" language="javascript">
    
var TTsFn = function(){    
        
function VoiceObj::EndStream() 
        { 
            
//运行其内内容
        }
    }
    
if (VoiceObj != null) {       
        //加载ActiveX事件
        TTsFn();
    }
    
</script>


 

 

 

相关文章:

  • 2021-11-11
  • 2021-11-03
  • 2022-12-23
  • 2021-11-01
  • 2022-12-23
  • 2022-01-13
  • 2021-06-23
猜你喜欢
  • 2021-04-10
  • 2022-12-23
  • 2021-09-20
  • 2021-05-18
  • 2022-12-23
  • 2022-12-23
  • 2021-07-15
相关资源
相似解决方案