最近的一个项目需要显示插件,所以自己也是查了一下如何在页面中显示插件。
这是插件显示的基本格式,在项目的页面上试了一下,也是可以显示的。
<object id="PowerwizEx1" codebase="-1" classid="clsid:897FADB8-FBA0-45F1-AB38-58C9E0CA1017" VIEWASTEXT>
<param name="_Version" value="65536"/>
<param name="_ExtentX" value="24977"/>
<param name="_ExtentY" value="15875"/>
<param name="_StockProps" value="0"/>
</object>
但是,很快领导又要求需要传递部分连接的参数,而这些参数从配置文件读取。配置文件内容读取并直接在后台做好传到前台,这些参数传过来了接下来就是如何显示了。
由于有参数并不能直接写好,需要添加相应的参数再显示到页面相应的位置上。如是,便改为页面加载时执行onload,在该方法中创建好再innerHTML到指定的位置。如下:
var OBJ='<object id="PowerwizEx1" style="width:100%;height:auto;" codeBase="../../ActiveX/webcli.msi" classid="clsid:200518C6-0322-11D2-87C1-00A024D948FB" VIEWASTEXT>'
+'<param name="_Version" value="0"/>'
+'<param name="_ExtentX" value="24977"/>'
+'<param name="_ExtentY" value="15875"/>'
+'<param name="_StockProps" value="0"/>'
+'<param name="Address" value="'+top.address+'"/>' //address参数
+'<param name="Port" value="'+top.port+'"/>' //port参数
+'<param name="graphname" value="'+top.graphname+'" />'
+'<param name="username" value="'+top.userName+'" />'
+'<param name="password" value="'+top.password+'" />'
+'</object>';
document.getElementById('plotObj').innerHTML=OBJ;
到这里插件内容已经可以显示了,但是却出现了一个问题。插件内容的初始化大小并不和object定义的大小一致。明显比object定义的大小大很多。而插件本身也是有适应页面大小的功能,似乎也失去了效果。
后来尝试换了一个方法,使用document.write显示到页面竟然正常了。