﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-过河卒-随笔分类-Javascript/Js框架</title><link>http://www.blogjava.net/ponzmd/category/27672.html</link><description>&lt;i&gt;平凡而简单的人一个，无权无势也无牵无挂。一路厮杀，只进不退，死而后已，岂不爽哉！&lt;br/&gt;
收起对“车”日行千里的羡慕；收起对“马”左右逢缘的感叹；目标记在心里面，向前进。一次一步，一步一脚印，跬步千里。&lt;br/&gt;
这个角色很适合现在的我。&lt;/i&gt; </description><language>zh-cn</language><lastBuildDate>Fri, 30 Nov 2007 05:34:19 GMT</lastBuildDate><pubDate>Fri, 30 Nov 2007 05:34:19 GMT</pubDate><ttl>60</ttl><item><title>Javascript调用OCX控件</title><link>http://www.blogjava.net/ponzmd/archive/2007/11/29/164071.html</link><dc:creator>彭俊</dc:creator><author>彭俊</author><pubDate>Thu, 29 Nov 2007 10:33:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2007/11/29/164071.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/164071.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2007/11/29/164071.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/164071.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/164071.html</trackback:ping><description><![CDATA[<p><strong>什么是ocx控件？</strong></p>
<p>对象链接和嵌入用户控件（OCX）是一种可以由在微软的Windows系统中运行的应用软件创建使用的特殊用途的程序。</p>
<p>想知道究竟的可以看看这个帖子。</p>
<p><a title="http://www.tososo.com/html/software-learning/20070829/3710.html" href="http://www.tososo.com/html/software-learning/20070829/3710.html">http://www.tososo.com/html/software-learning/20070829/3710.html</a></p>
<p>&nbsp;</p>
<p>偶用的VC6，顺手开发了一个简单的ocx控件，具体怎么写的就不显了。</p>
<p>做好了以后，才是我今天要记下的东西——<strong>通过Javascript调用ocx控件</strong>。</p>
<p>&nbsp;</p>
<p>这里的调用基本上可以分这几步：</p>
<p><strong>1.找出相关信息</strong></p>
<p>首先我们的给这个ocx起个名字，起什么名字通过最后生成的ocx控件的文件名决定。<br />
第二，我们的找到这个ocx的编号值,将ocx提取出来，我采用Microsoft Control Pad来编辑，得到ocx控件的classid, 然后我们做下面的工作。</p>
<p><strong>2.注册ocx控件</strong></p>
<p>注册ocx控件使用RegSvr32.exe。<br />
使用RegSvr32.exe(在System目录下)注册，语法为：<br />
&nbsp;&nbsp;&nbsp; RegSvr32&nbsp; ocxname.ocx&nbsp; <br />
如果注册成功将显示一个成功的消息框。<br />
&nbsp;&nbsp; <br />
如果不希望看到这个对话框，也可以使用/s选项，如<br />
&nbsp;&nbsp;&nbsp; RegSvr32 /s your.ocx<br />
如果取消注册，可以使用/u选项，如<br />
&nbsp;&nbsp;&nbsp; RegSvr32 /u your.ocx </p>
<p><strong>3.加载ocx控件</strong></p>
<p>注册成功后，我们就得写一个html页面，通过&lt;OBJECT&gt;来加载这个控件了。具体如下：</p>
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">OBJECT</span> <span class="attr">id</span><span class="kwrd">="ocx文件名"</span> <span class="attr">codeBase</span><span class="kwrd">="ocx控件的相对位置#version=1,0,0,0"</span>
<span class="attr">data</span><span class="kwrd">="data:application/xoleobject;base64,mRHW/Ifh3UqI5ZryOEhtERAHAAD/KgAAYSQAAA=="</span> <br />
<span class="attr">classid</span><span class="kwrd">="CLSID:通过MCP找到的classid"</span> <span class="attr">VIEWASTEXT</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">OBJECT</span><span class="kwrd">&gt;</span></pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p><strong>4.调用</strong></p>
<p>先要定义调用事件</p>
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">a</span> <span class="attr">href</span><span class="kwrd">="javascript:IOStart()"</span> <span class="kwrd">&gt;</span>short IOStart()<span class="kwrd">&lt;/</span><span class="html">a</span><span class="kwrd">&gt;</span></pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>接下来写调用方法</p>
<pre class="csharpcode"><span class="kwrd">function</span> IOStart()<br />
{<br />
TestOcx.IOStart(); <br />
}</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>说明：TestOcx对应于&lt;OBject&gt;中的id属性。IOStart()是在ocx中定义的方法。</p>
<p>&nbsp;</p>
<p>好了，这里通过Javascript调用ocx就完成了。</p>
<p>其实还有一部分内容就是通过javascript捕获ocx事件，这个问题以后在来说明。</p>
<p>&nbsp;</p>
<p><font color="#ff0000"><strong><em>PS： 请教大家一个问题，请大家看看web迅雷是怎么实现的？能不能给出你的看法呢？主要想知道界面如何与底层交互？</em></strong><br />
</font></p>
<img src ="http://www.blogjava.net/ponzmd/aggbug/164071.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">彭俊</a> 2007-11-29 18:33 <a href="http://www.blogjava.net/ponzmd/archive/2007/11/29/164071.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>