色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

有趣的script標(biāo)簽用getAttribute方法來(lái)自腳本吧

在網(wǎng)頁(yè)中引入外部對(duì)象并傳遞參數(shù),想來(lái)大家都有這個(gè)經(jīng)歷。一般來(lái)說(shuō),使用的標(biāo)簽是iframe和embed(針對(duì)flash),不過(guò)這兩個(gè)標(biāo)簽都不能象xml一般設(shè)置參數(shù),只能通過(guò)在url地址后追加查詢字符串的方式來(lái)傳值。htc倒是挺不錯(cuò)的,只是沒(méi)有瀏覽器兼容性,想來(lái)大家也不考慮它了。 
    用script標(biāo)簽可以把一個(gè)外部js文件載入到頁(yè)面中,而且不管這個(gè)文件是否同域,都同樣有效,這種跨域特性,可以說(shuō)是獨(dú)一無(wú)二的。一般情況下,我們都只是把js文件作為公用代碼的一部分加以使用,在這里面集成一些公用函數(shù)和類。換個(gè)思維,我們把script標(biāo)簽看作是一個(gè)大的可視化的組件,對(duì)其傳入?yún)?shù),并根據(jù)參數(shù)進(jìn)行不同的布局調(diào)整,這樣做是很有意思的。 
    舉個(gè)例子,“<script width=300 height=200 filePath="http://mp3.baidu.com/abc.mp3" src=player.js></script>”,這樣的寫(xiě)法是不是挺直觀,而且又具有實(shí)用性呢?大家會(huì)問(wèn),player.js如何取到script標(biāo)簽里的參數(shù)?其實(shí)這很簡(jiǎn)單,只需要在player.js里查找到最后一個(gè)script元素,就是當(dāng)前的這個(gè)元素了,然后用getAttribute方法,想取多少個(gè)參數(shù)都可以。 

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
script標(biāo)簽除了包含代碼之外,想過(guò)用他來(lái)存儲(chǔ)數(shù)據(jù)嗎?這樣做的目的主要是為了實(shí)現(xiàn)跨域限制。 
可以用字符串的方式來(lái)存放文本,但這種方式是不直觀的,而且需要對(duì)特殊字符進(jìn)行處理,比如: 
str="aaaa" 
str+="bbbb" 
或 
str="aaaa/ 
bbbb" 
我們可以利用函數(shù)能夠顯示源碼,并能夠顯示源碼中的備注的特性,把數(shù)據(jù)巧妙地放置在備注中,這樣就可以不用遵守js語(yǔ)法的規(guī)范了。 

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
有個(gè)應(yīng)用,拿出來(lái)給大家分享 
由于xp的補(bǔ)丁,一夜之間讓大江南北的網(wǎng)站上的flash全部加上虛框,需要點(diǎn)擊才能激活。大家在恨得牙痛之時(shí),只好想出對(duì)應(yīng)的方法,下面是新浪網(wǎng)插入flash的方法: 
----------------------------------------------------- 
<script type="text/Javascript" src="http://image2.sina.com.cn/home/sinaflash.js"></script> 
<script> 
var objFlash = new sinaFlash("abc.swf", "", "100", "100", "7", "", false,"high"); 
objFlash.addParam("wmode", "opaque"); 
objFlash.write("flashcontent_1D194BAF55E2"); 
</script> 
----------------------------------------------------- 
如果善用script標(biāo)簽,則可以簡(jiǎn)化為: 
-----------------------------------------------------  
<script src="swf.js" movie="abc.swf" width="100" height="100" wmode="opaque"></script> 
----------------------------------------------------- 
一句話足矣 
下面是swf.js文件的內(nèi)容: 
----------------------------------------------------- 
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="<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' id='"+flaID+"' width='"+(oJs.getAttribute("width")||"100%")+"' height='"+(oJs.getAttribute("height")||"100%")+"'>/ 
    <param name=movie value='"+sMovie+"' />/ 
    <param name=wmode value='"+(oJs.getAttribute("wmode")||"window")+"' />/ 
    <param name=allowscriptaccess value='always' />/ 
    <embed id='"+flaID+"' name='"+flaID+"' allowscriptaccess=always wmode=transparent src='"+sMovie+"' width=120% height=100% type='application/x-shockwave-flash'></embed>/ 
</object>" 
document.write(l) 

JavaScript技術(shù)有趣的script標(biāo)簽用getAttribute方法來(lái)自腳本吧,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 都昌县| 遂溪县| 高要市| 福泉市| 岱山县| 讷河市| 色达县| 乌鲁木齐市| 宽城| 阿鲁科尔沁旗| 铜陵市| 朝阳县| 宣化县| 布拖县| 浙江省| 荃湾区| 青岛市| 井研县| 托里县| 莱芜市| 沙雅县| 晋江市| 呼和浩特市| 古蔺县| 怀来县| 平塘县| 理塘县| 固镇县| 承德县| 叶城县| 武鸣县| 巴南区| 姜堰市| 肃南| 西华县| 潞城市| 高碑店市| 屯昌县| 合水县| 桃园县| 若羌县|