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

使用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>


原文地址:https://www.cnblogs.com/scottckt/p/1851480.html