js获取html参数及向swf传递参数应用介绍


Posted in Javascript onFebruary 18, 2013

我们知道HTML页面是在客户端执行的,这样要获取参数必须使用客户端脚本(如JavaScript),在这点上不同于服务器端脚本获取参数方式。

下面的这段js代码获取HTML网页形如"test.html?foo=mytest&program=flash" "?"后所有参数。

<script language=javascript> 
<!-- 
var hrefstr,pos,parastr; 
hrefstr = window.location.href; 
pos = hrefstr.indexOf("?"); 
parastr = hrefstr.substring(pos 1); 
if (pos>0){ 
document.write("所有参数:" parastr); 
} else { 
document.write("无参数"); 
} 
//--> 
</script>

一、下面的这段js代码则可以更加细化获取HTML网页某一参数
<script language=javascript> 
<!-- 
function getparastr(strname) { 
var hrefstr,pos,parastr,para,tempstr; 
hrefstr = window.location.href; 
pos = hrefstr.indexOf("?") 字串9 
parastr = hrefstr.substring(pos 1); 
para = parastr.split("&"); 
tempstr=""; 
for(i=0;i<para.length;i ) 
{ 
tempstr = para[i]; 
pos = tempstr.indexOf("="); 
if(tempstr.substring(0,pos) == strname) { 
return tempstr.substring(pos 1); 
} 
} 
return null; 
} 
// 获取program参数 
var programstr = getparastr("program"); 
document.write(programstr); 
//--> 
</script>

二、在HTML网页中向swf传递参数
方法一:在网页中使用js,SetVariable设置flashobject中的变量,代码如:
// "HtmlToSwf"为网页中的flashobject ID 
HtmlToSwf.SetVariable("_root.info_str","Happy Newyear");

方法二:路径参数,如test.swf?foo=happy2005
方法三:使用FlashVars,以下主要介绍FlashVars的用法。使用FlashVars后嵌入HTML的flashobject代码如下:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="550" height="400" id="FlashVars" align="middle"> 字串5 
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="movie" value="FlashVars.swf" /> 
<param name="FlashVars" value="foo=happy2005&program=flash&language=简体中文-中国" /> 
<param name="quality" value="high" /> 
<param name="bgcolor" value="#ffffff" /> 
<embed src="FlashVars.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="FlashVars" align="middle" allowScriptAccess="never" allowNetworking="internal" autostart="0" FlashVars="foo=happy2005&program=flash&language=简体中文-中国" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />

通过上面的代码,在SWF(FlashVars.swf)中就可以直接获取foo、program、language变量数据。FlashVars.fla获取FlashVars参数的代码如下:
// 创建三个文本字段 
_root.createTextField("foo_txt",1,0,0,16,16); 
_root.createTextField("program_txt",2,0,32,16,16); 
_root.createTextField("language_txt",3,0,64,16,16); 
foo_txt.autoSize = true; 
字串8 
foo_txt.border = true; 
program_txt.autoSize = true; 
program_txt.border = true; 
language_txt.autoSize = true; 
language_txt.border = true; 
// 获取FlashVars变量 
foo_txt.text = "HTML中的foo参数:" foo; 
program_txt.text = "HTML中的program参数:" program; 
language_txt.text = "HTML中的language参数:" language;

三、两者的有效结合
在HTML网页中使用js获取参数,然后将获取的参数作为FlashVars写入flashobject传递给swf。代码如下:
<script language=javascript> 
<!-- 
function writeflashobject(parastr) { 
document.write("<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0\" width=\"550\" height=\"400\" id=\"FlashVars\" align=\"middle\"\>\n"); 
document.write("<param name=\"allowScriptAccess\" value=\"sameDomain\" /\>\n"); 
document.write("<param name=\"movie\" value=\"FlashVars.swf\" /\>\n"); 字串2 
document.write("<param name=\"FlashVars\" value=\"" parastr "\" /\>\n"); 
document.write("<param name=\"quality\" value=\"high\" /\>\n"); 
document.write("<param name=\"bgcolor\" value=\"#ffffff\" /\>\n"); 
document.write("<embed src=\"FlashVars.swf\" quality=\"high\" bgcolor=\"#ffffff\" width=\"550\" height=\"400\" name=\"FlashVars\" align=\"middle\" allowScriptAccess=\"sameDomain\" FlashVars=\"" parastr "\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" /\>"); 
document.write("</object\>"); 
} 
function getparastr() { 
var hrefstr,pos,parastr,para,tempstr1; 
hrefstr = window.location.href; 
pos = hrefstr.indexOf("?") 
parastr = hrefstr.substring(pos 1); 
return parastr; 
} 
var parastr = getparastr(); 
writeflashobject(parastr); 
//--> 
</script>
Javascript 相关文章推荐
js中事件的处理与浏览器对象示例介绍
Nov 29 Javascript
Node.js模块加载详解
Aug 16 Javascript
jQuery()方法的第二个参数详解
Apr 29 Javascript
JavaSacript中charCodeAt()方法的使用详解
Jun 05 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
Oct 31 Javascript
JS构造函数与原型prototype的区别介绍
Jul 04 Javascript
javascript回调函数的概念理解与用法分析
May 27 Javascript
JS中type=&quot;button&quot;和type=&quot;submit&quot;的区别
Jul 04 Javascript
js下拉菜单生成器dropMenu使用方法详解
Aug 01 Javascript
微信小程序 本地图片按照屏幕尺寸处理
Aug 04 Javascript
jQuery实现可兼容IE6的遮罩功能详解
Sep 19 jQuery
Vue 指令实现按钮级别权限管理功能
Apr 23 Javascript
用js写了一个类似php的print_r输出换行功能
Feb 18 #Javascript
让ie6也支持websocket采用flash封装实现
Feb 18 #Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
Feb 18 #Javascript
jQuery筛选器children()案例详解(图文)
Feb 17 #Javascript
正则表达式搭配js轻松处理json文本方便而老古
Feb 17 #Javascript
jQuery图片播放8款精美插件分享
Feb 17 #Javascript
jQuery性能优化28条建议你值得借鉴
Feb 16 #Javascript
You might like
PHP使用pcntl_fork实现多进程下载图片的方法
2014/12/16 PHP
yii实现model添加默认值的方法(2种方法)
2016/01/06 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
2016/12/15 PHP
如何实现iframe(嵌入式帧)的自适应高度
2006/07/26 Javascript
JAVASCRIPT对象及属性
2007/02/13 Javascript
JQuery下的Live方法和$.browser方法使用代码
2010/06/02 Javascript
原生js 秒表实现代码
2012/07/24 Javascript
js计算字符串长度包含的中文是utf8格式
2013/10/15 Javascript
JavaScript中instanceof运算符的用法总结
2013/11/19 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
2014/06/06 Javascript
使用Nodejs连接mongodb数据库的实现代码
2017/08/21 NodeJs
全面介绍vue 全家桶和项目实例
2017/12/27 Javascript
详解Vue单元测试case写法
2018/05/24 Javascript
详解vue-cli中模拟数据的两种方法
2018/07/03 Javascript
Vue动态组件与异步组件实例详解
2019/02/23 Javascript
koa-router路由参数和前端路由的结合详解
2019/05/19 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
2019/05/20 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
2019/07/25 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
2020/10/22 Javascript
pycharm 使用心得(二)设置字体大小
2014/06/05 Python
Python unittest模块用法实例分析
2018/05/25 Python
python使用PyQt5的简单方法
2019/02/27 Python
网易2016研发工程师编程题 奖学金(python)
2019/06/19 Python
django中的数据库迁移的实现
2020/03/16 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
2020/07/14 Python
Python三维绘图之Matplotlib库的使用方法
2020/09/20 Python
ONLY德国官方在线商店:购买时尚女装
2017/09/21 全球购物
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
医药专业应届毕业生求职信范文
2014/01/01 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
人事任命通知书
2015/04/21 职场文书
上班迟到检讨书
2015/05/06 职场文书
一文搞懂Redis中String数据类型
2022/04/03 Redis