MATLAB社区

MATLAB、社区和更多

在MATLAB交互式网页,第4部分

在几周前Ashwin评论我的在MATLAB交互式web页面系列从去年询问在MATLAB计算数据并将回到一个web页面。我没有花时间当时如何解释它,因为它不是最直接的,需要一些javascript。

那么闲话少说,我将展示一种方法从一个web页面数据往返通过MATLAB(都运行在相同的MATLAB会话)。这种方法的主要部分是我要有一个开始函数动态地创建一个web页面加载所需的空间数据。这个动态页面加载一个静态页面,用户与之交互的GUI。这个页面调用的回调函数评估的数据页面并开始循环一遍又一遍。这是数据流。

功能流

主要功能
主要功能的目的是web GUI的入口点。需要传入数据并将这些数据放入一个动态创建网页,静态页面加载。这个过程可以简化创建整个动态html的一部分,但这失去的利益使用更好的html编辑工具来创建一个漂亮的web页面(这不是一个例子)。

棘手的部分是我们存储的值用于主GUI中标签。这让我们从一个javascript方法查主页面。主要页面加载在一个框架,它仍然可以访问这里创建的元标签。否则我们将不得不写直接meta标签到主页。

函数matlabfromjs4(值)% matlabfromjs4加载web gui打印出神奇的命令的结果如果输入参数个数= = 0%如果没有参数(即第一次)然后不负载任何数据元=;其他的%否则放到一个meta标记元=价值;结束元= sprintf (' < meta id =“valueToPutInPage”内容=“% s”>“元);%动态生成html和写出来一个临时文件文件= tempname;fid = fopen(文件,“w +”);流(fid, [' < html > \ n \ t <头> \ n '' \ t \ t <标题>从JavaScript调用MATLAB 4 < /名称> \ n”“\ t % s \ n”“\ t < /头> \ n”' \ t \ t <框架集> \ n '' \ t \ \ t <帧name = "主" src = " % s " > \ n”' \ t \ t < /框架集> \ n '“< / html >”),元,的文件:/ / /(“matlabfromjs4.html”)));% matlabjs4。html是主要的web gui文件关闭(fid);%加载页面网站([的文件:/ / /文件),“-noaddressbox”);

GUI页面
当在web浏览器中,加载这个页面设置元内容和加载matlabfromjs4.html到浏览器。这个页面onload查询的值并将其写入一个特殊的标记div。这个页面也有一个表单元素值输入框时,它会问MATLAB进行计算基于值(在本例中魔法),会刷新页面。

< html ><头><脚本lang =“text / javascript”>函数calculatemagic () {var magicValue = . getelementbyid(“魔法”)value;文档。位置= " matlab: js4helper (“+ magicValue +”);”;}函数loadvalues () {var pval = parent.document.getElementById (“valueToPutInPage”);返回pval.content;}> < /脚本< / >头<身体>输入一个值:< tt > < b >魔法< / b > < / tt > <输入id =“魔法”onblur =“calculatemagic ()”>< divid =“答案”风格=”背景:浅灰色;字体类型:快递;“><脚本lang =“text / javascript”>document . write (loadvalues ());< /脚本> < / div >< /身体>< / html >

calculateMagicjavascript函数使用前面描述的matlab:操作符调用我们的helper函数js4helper
js4helper
辅助函数计算的输出魔法功能和格式的输出是一个可显示的html字符串,并调用我们的主要函数的字符串,再生的框架页面,开始整个过程结束。

函数js4helper(值)% js4helper网页中的值,找到答案和格式如果~ (“价值”,“var”)%需要检查,没有给出任何有效输入输入框是空白。magicVal =;其他的val =魔法(值);[r、c] =大小(val);格式= [repmat (' %我1 r)“< br >”];magicVal = sprintf(格式,val);结束matlabfromjs4 (magicVal);

这是基本的创建动态html在MATLAB的gui。额外的信用我离开你有两个作业:
1。使用base64编码图像添加到web页面,而无需创建一个图像文件。
2。在Windows上使用ActiveX钩一个网页运行在IE MATLAB会话。

更新:(6/23/09)下载文件:matlabfromjs4.zip

|
  • 打印
  • 发送电子邮件

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。