有趣的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ù)和類(lèi)。換個(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需再刷新一下頁(yè)面才能執(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需再刷新一下頁(yè)面才能執(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動(dòng)態(tài)添加css樣式和script標(biāo)簽
- IE8中動(dòng)態(tài)創(chuàng)建script標(biāo)簽onload無(wú)效的解決方法
- 動(dòng)態(tài)創(chuàng)建script標(biāo)簽實(shí)現(xiàn)跨域資源訪問(wèn)的方法介紹
- Script標(biāo)簽與訪問(wèn)HTML頁(yè)面詳解
- javascript標(biāo)簽在頁(yè)面中的位置探討
- script標(biāo)簽屬性type與language使用選擇
- script標(biāo)簽的 charset 屬性使用說(shuō)明
- javascript 獲取url參數(shù)和script標(biāo)簽中獲取url參數(shù)函數(shù)代碼
- asp.net(C#) 動(dòng)態(tài)添加非ASP的標(biāo)準(zhǔn)html控件(如添加Script標(biāo)簽)
- 淺談js script標(biāo)簽中的預(yù)解析
相關(guān)文章
nuxt+axios實(shí)現(xiàn)打包后動(dòng)態(tài)修改請(qǐng)求地址的方法
這篇文章主要介紹了nuxt+axios實(shí)現(xiàn)打包后動(dòng)態(tài)修改請(qǐng)求地址的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04layer子層給父層頁(yè)面元素賦值,以達(dá)到向父層頁(yè)面?zhèn)髦档男Ч麑?shí)例
下面小編就為大家?guī)?lái)一篇layer子層給父層頁(yè)面元素賦值,以達(dá)到向父層頁(yè)面?zhèn)髦档男Ч麑?shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09學(xué)習(xí)JS中的DOM節(jié)點(diǎn)以及操作
本篇文章給大家整理了關(guān)于JS中DOM節(jié)點(diǎn)的相關(guān)知識(shí)點(diǎn)以及代碼實(shí)例,有興趣的朋友可以跟著學(xué)習(xí)下。2018-04-04bootstrap fileinput 上傳插件的基礎(chǔ)使用
這篇文章主要介紹了bootstrap fileinput 上傳插件基礎(chǔ)使用,重點(diǎn)是把界面做得更加友好,更好的增加用戶體驗(yàn)。對(duì)bootstrap fileinput知識(shí)感興趣的朋友通過(guò)本文一起學(xué)習(xí)吧2017-02-02javascript編寫(xiě)實(shí)用的省市選擇器
這篇文章主要介紹了javascript編寫(xiě)實(shí)用的省市選擇器的方法及示例分享,非常不錯(cuò),推薦給有相同需求的小伙伴們。2015-02-02JavaScript新手必看之var在for循環(huán)中的坑
var這個(gè)關(guān)鍵字在JS當(dāng)中是相當(dāng)常用的,但同時(shí)配合到for循環(huán)的話會(huì)出現(xiàn)不符合預(yù)期的運(yùn)行結(jié)果,所以本文就來(lái)為大家講講如何避免這種情況的出現(xiàn)2023-05-05淺談es6中export和export default的作用及區(qū)別
下面小編就為大家分享一篇淺談es6中export和export default的作用及區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02