在网页中引入外部对象并传递参数,想来大家都有这个经历。一般来说,使用的标签是iframe和embed(针对flash),不过这两个标签都不能象xml一般设置参数,只能通过在url地址后追加查询字符串的方式来传值。htc倒是挺不错的,只是没有浏览器兼容性,想来大家也不考虑它了。 用script标签可以把一个外部js文件载入到页面中,而且不管这个文件是否同域,都同样有效,这种跨域特性,可以说是独一无二的。一般情况下,我们都只是把js文件作为公用代码的一部分加以使用,在这里面集成一些公用函数和类。换个思维,我们把script标签看作是一个大的可视化的组件,对其传入参数,并根据参数进行不同的布局调整,这样做是很有意思的。 举个例子,“<script></script>”,这样的写法是不是挺直观,而且又具有实用性呢?大家会问,player.js如何取到script标签里的参数?其实这很简单,只需要在player.js里查找到最后一个script元素,就是当前的这个元素了,然后用getAttribute方法,想取多少个参数都可以。
script标签除了包含代码之外,想过用他来存储数据吗?这样做的目的主要是为了实现跨域限制。
可以用字符串的方式来存放文本,但这种方式是不直观的,而且需要对特殊字符进行处理,比如:
str="aaaa"
str+="bbbb"
或
str="aaaa\
bbbb"
我们可以利用函数能够显示源码,并能够显示源码中的备注的特性,把数据巧妙地放置在备注中,这样就可以不用遵守js语法的规范了。
有个应用,拿出来给大家分享
由于xp的补丁,一夜之间让大江南北的网站上的flash全部加上虚框,需要点击才能激活。大家在恨得牙痛之时,只好想出对应的方法,下面是新浪网插入flash的方法:
-----------------------------------------------------
<script></script>
<script> <BR>var objFlash = new sinaFlash("abc.swf", "", "100", "100", "7", "", false,"high"); <BR>objFlash.addParam("wmode", "opaque"); <BR>objFlash.write("flashcontent_1D194BAF55E2"); <BR></script>
-----------------------------------------------------
如果善用script标签,则可以简化为:
-----------------------------------------------------
<script></script>
-----------------------------------------------------
一句话足矣
下面是swf.js文件的内容:
-----------------------------------------------------
var ol,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="
\ \ \ \ \ "
document.write(l)
Stellungnahme: Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn