手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >有趣的script标签用getAttribute方法来自脚本吧
有趣的script标签用getAttribute方法来自脚本吧
摘要:在网页中引入外部对象并传递参数,想来大家都有这个经历。一般来说,使用的标签是iframe和embed(针对flash),不过这两个标签都不能...

在网页中引入外部对象并传递参数,想来大家都有这个经历。一般来说,使用的标签是iframe和embed(针对flash),不过这两个标签都不能象xml一般设置参数,只能通过在url地址后追加查询字符串的方式来传值。htc倒是挺不错的,只是没有浏览器兼容性,想来大家也不考虑它了。

用script标签可以把一个外部js文件载入到页面中,而且不管这个文件是否同域,都同样有效,这种跨域特性,可以说是独一无二的。一般情况下,我们都只是把js文件作为公用代码的一部分加以使用,在这里面集成一些公用函数和类。换个思维,我们把script标签看作是一个大的可视化的组件,对其传入参数,并根据参数进行不同的布局调整,这样做是很有意思的。

举个例子,“<scriptwidth=300height=200filePath="http://mp3.baidu.com/abc.mp3"src=player.js></script>”,这样的写法是不是挺直观,而且又具有实用性呢?大家会问,player.js如何取到script标签里的参数?其实这很简单,只需要在player.js里查找到最后一个script元素,就是当前的这个元素了,然后用getAttribute方法,想取多少个参数都可以。

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

script标签除了包含代码之外,想过用他来存储数据吗?这样做的目的主要是为了实现跨域限制。

可以用字符串的方式来存放文本,但这种方式是不直观的,而且需要对特殊字符进行处理,比如:

str="aaaa"

str+="bbbb"

str="aaaa

bbbb"

我们可以利用函数能够显示源码,并能够显示源码中的备注的特性,把数据巧妙地放置在备注中,这样就可以不用遵守js语法的规范了。

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

有个应用,拿出来给大家分享

由于xp的补丁,一夜之间让大江南北的网站上的flash全部加上虚框,需要点击才能激活。大家在恨得牙痛之时,只好想出对应的方法,下面是新浪网插入flash的方法:

-----------------------------------------------------

<scripttype="text/javascript"src="http://image2.sina.com.cn/home/sinaflash.js"></script>

<script>

varobjFlash=newsinaFlash("abc.swf","","100","100","7","",false,"high");

objFlash.addParam("wmode","opaque");

objFlash.write("flashcontent_1D194BAF55E2");

</script>

-----------------------------------------------------

如果善用script标签,则可以简化为:

-----------------------------------------------------

<scriptsrc="swf.js"movie="abc.swf"width="100"height="100"wmode="opaque"></script>

-----------------------------------------------------

一句话足矣

下面是swf.js文件的内容:

-----------------------------------------------------

varol,oJs,flaID,sMovie

ol=document.getElementsByTagName("script")

oJs=ol[ol.length-1]

flaID=oJs.getAttribute("flaID")||""

sMovie=oJs.getAttribute("movie")

if(sMovie.slice(0,1)=="{"&&sMovie.slice(-1)=="}")

sMovie=eval(sMovie.slice(1,-1))

l="<objectclassid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'id='"+flaID+"'width='"+(oJs.getAttribute("width")||"100%")+"'height='"+(oJs.getAttribute("height")||"100%")+"'>

<paramname=movievalue='"+sMovie+"'/>

<paramname=wmodevalue='"+(oJs.getAttribute("wmode")||"window")+"'/>

<paramname=allowscriptaccessvalue='always'/>

<embedid='"+flaID+"'name='"+flaID+"'allowscriptaccess=alwayswmode=transparentsrc='"+sMovie+"'width=120%height=100%type='application/x-shockwave-flash'></embed>

</object>"

document.write(l)

【有趣的script标签用getAttribute方法来自脚本吧】相关文章:

JavaScript中switch语句的用法详解

javascript无刷新评论实现方法

javascript实现树形菜单的方法

JavaScript中的splice()方法使用详解

在JavaScript中正确引用bind方法的应用

JavaScript中的substr()方法使用详解

简述JavaScript中正则表达式的使用方法

JavaScript中用getDate()方法返回指定日期的教程

在JavaScript的正则表达式中使用exec()方法

javascript中一些util方法汇总

精品推荐
分类导航