浏览器页面中交互控件的自动加载

在WEB页面中包含交互控件时,浏览器会提示用户是否激活该对象,例如在页面中包含SVG的时候:

< html >< head >< title > SVG事件 </ title >
< body  >< embed  name ="id1"  align ="top"  src ="1.svg"  height ="200px"  width ="400px"  type ="image/svg+xml" >
</ body >
</ html >

当鼠标移动到SVG上,会提示“单击以激活并使用该控件”。

 

MSDN中是这样描述的:

 

交互控件 是提供用户界面的 ActiveX 控件。当 Web 页使用 APPLET、EMBED 或 OBJECT 元素加载某个 ActiveX 控件时,该控件的用户界面在用户激活它之前一直是阻止的。如果一个页面使用这些元素加载多个控件,则每个交互控件必须单独激活。

如果某个控件未激活,就会出现以下结果。

• 与用户交互相关的动态 HTML (DHTML) 事件(如 onblur 和 onclick)被阻止。附录 A 列出控件未激活时受阻的 DHTML 事件。
 
• 该控件不响应键盘或鼠标生成的窗口消息,如 WM_CLICK、WM_KEYPRESS 等。
 
• 覆盖窗口(创建于控件的 OLE 站点)防止键盘和鼠标消息到达未激活的控件。
 

创建了一个未激活控件后,Internet Explorer 使用不同技术防止键盘或鼠标窗口消息到达该控件。如果未激活控件是一个有窗口的控件(如 HTML Help 控件),Internet Explorer 使用 EnableWindow 函数禁用这个未激活控件的窗口。当用户激活一个有窗口的控件时,该函数激活禁用的窗口。如果未激活控件是一个无窗口控件(如 Office Web 组件),则该控件的容器会筛选键盘和鼠标消息。

如果某个控件未激活,它不响应用户输入,但执行与交互无关的操作。例如,如果您打开一个使用 Microsoft Windows 媒体播放器播放音乐文件的 Web 页,该页加载后才会播放音乐。只有该控件的用户界面激活后,您才能与 Windows 媒体播放器交互。

 

有时我们希望避免这种情况,让用户可以在页面显示后直接使用该控件,以便给用户更好的使用感觉,这时有两个办法

1,可以使用脚本外部加载的方法,在HTML中不直接使用embed方法,而是嵌入一个外部脚本

 

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

在脚本中使用动态加载的方式,将SVG或其它交互控件嵌入页面

 

document.write( '  <embed name="id1" align="top" src="1.svg" height="200px" width="400px" type="image/svg+xml">  ' );

 

这是再打开页面,就不用用户激活控件了。

2,使用frame或iframe框架,在框架中引入控件

 

< html >
< head >< title > FRAMES </ title >
< frameset  rows ="100,*" >
    
< frame  src ="play.svg"  name ="svg1" />
    
< frameset  cols ="50%,50%" >
        
< frame  src ="2.svg"  name ="svg2" />
        
< frame  src ="3.svg"  name ="svg3" />
    
</ frameset >
</ frameset >
</ html >

 

可见第二种方法更加方便直观,不过在实际测试中发现对OBJECT方法嵌入的控件,例如媒体播放器等,只能使用第一种方式,使用FRAME的方法无效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值