摘要:在前端開發(fā)中,經(jīng)常需要用從后臺(tái)獲取動(dòng)態(tài)數(shù)據(jù),因此不能寫死,而要?jiǎng)討B(tài)加載。問(wèn)題描述實(shí)習(xí)期間在做一個(gè)需求的過(guò)程中碰到需要從后臺(tái)動(dòng)態(tài)加入的問(wèn)題。因此不能采取上述方法來(lái)動(dòng)態(tài)加載。
在Web前端開發(fā)中,經(jīng)常需要用ajax從后臺(tái)獲取動(dòng)態(tài)數(shù)據(jù),因此不能寫死,而要?jiǎng)討B(tài)加載js。
問(wèn)題描述:實(shí)習(xí)期間在做一個(gè)需求的過(guò)程中碰到需要從后臺(tái)動(dòng)態(tài)加入js的問(wèn)題。
首先,我給出的解決方案是:
其中向url_demo發(fā)送http請(qǐng)求,返回一個(gè)json串,其中包括我們想要的url,這里的url是一段js,獲取url后賦值給內(nèi)部嵌入了一段腳本之后,就不能修改其屬性值了。因此不能采取上述方法來(lái)動(dòng)態(tài)加載js。
解決方案可修改為:
也就是多帶帶拎一個(gè),里面不加任何js代碼,然后用另外的編寫js腳本前一個(gè)的src屬性進(jìn)行修改,達(dá)到頁(yè)面動(dòng)態(tài)加入js的要求。
后來(lái)導(dǎo)師說(shuō)上面的做法有點(diǎn)low,而且“極具創(chuàng)造力”(不過(guò)發(fā)現(xiàn)了一個(gè)問(wèn)題然后解決了,還是不錯(cuò)滴),就要我去找loadjs的常規(guī)方法,這里借用一下玉伯seajs里的loadJs方法,學(xué)習(xí)一下大神的寫法:
function loadJs(url , callback){ var node = document.createElement("script"); node[window.addEventListener ? "onload":"onreadystatechange"] = function(){ if(window.addEventListener || /loaded|complete/i.test(node.readyState)){ callback(); node.onreadystatechange = null; } } node.onerror = function(){}; node.src = url; var head = document.getElementsByTagName("head")[0]; head.insertBefore(node,head.firstChild); }
用法如下:
$(function(){ $.ajax({ type: "GET", data: {captchaType:1}, url: "demo_url", dataType: "jsonp", jsonp: "callback" }).done(function(json){ if (json.code == 0) { //參數(shù)url和回調(diào)函數(shù) loadJs(json.url, fCb); } }); function fCb(){ //回調(diào)函數(shù),第一次需要用到上述url對(duì)應(yīng)js腳本的函數(shù) init("container1", "point"); } })
好啦,還是看的、學(xué)的太少了,以后要多看大牛的寫法,只有看得多了,才能不會(huì)一頭鉆進(jìn)死胡同里。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/80237.html
摘要:測(cè)試動(dòng)態(tài)加載到標(biāo)簽并執(zhí)行回調(diào)方法調(diào)用加載成功動(dòng)態(tài)加載腳本地址回調(diào)函數(shù)加載樣式站中下載打開方法測(cè)試頁(yè)面跳轉(zhuǎn)到微信中不能打開其他安卓手機(jī)嘗試調(diào)用未指定需要打開的可參考自定義協(xié)議參數(shù)轉(zhuǎn)換參考參數(shù)轉(zhuǎn)對(duì)象使用對(duì)象轉(zhuǎn)參數(shù) js實(shí)用方法記錄-動(dòng)態(tài)加載css/js 1.動(dòng)態(tài)加載js文件到head標(biāo)簽并執(zhí)行回調(diào)方法調(diào)用:dynamicLoadJs(http://www.yimo.link/static/...
摘要:測(cè)試動(dòng)態(tài)加載到標(biāo)簽并執(zhí)行回調(diào)方法調(diào)用加載成功動(dòng)態(tài)加載腳本地址回調(diào)函數(shù)加載樣式站中下載打開方法測(cè)試頁(yè)面跳轉(zhuǎn)到微信中不能打開其他安卓手機(jī)嘗試調(diào)用未指定需要打開的可參考自定義協(xié)議參數(shù)轉(zhuǎn)換參考參數(shù)轉(zhuǎn)對(duì)象使用對(duì)象轉(zhuǎn)參數(shù) js實(shí)用方法記錄-動(dòng)態(tài)加載css/js 1.動(dòng)態(tài)加載js文件到head標(biāo)簽并執(zhí)行回調(diào)方法調(diào)用:dynamicLoadJs(http://www.yimo.link/static/...
摘要:測(cè)試動(dòng)態(tài)加載到標(biāo)簽并執(zhí)行回調(diào)方法調(diào)用加載成功動(dòng)態(tài)加載腳本地址回調(diào)函數(shù)加載樣式站中下載打開方法測(cè)試頁(yè)面跳轉(zhuǎn)到微信中不能打開其他安卓手機(jī)嘗試調(diào)用未指定需要打開的可參考自定義協(xié)議參數(shù)轉(zhuǎn)換參考參數(shù)轉(zhuǎn)對(duì)象使用對(duì)象轉(zhuǎn)參數(shù) js實(shí)用方法記錄-動(dòng)態(tài)加載css/js 1.動(dòng)態(tài)加載js文件到head標(biāo)簽并執(zhí)行回調(diào)方法調(diào)用:dynamicLoadJs(http://www.yimo.link/static/...
摘要:屬性共中狀態(tài)初始狀態(tài)加載中加載完成已加載并可與用戶交互,但還需要加載圖片等其他資源全部資源加載完成文檔加載順序解析結(jié)構(gòu)加載外部腳本和樣式表文件解析并執(zhí)行腳本樹構(gòu)建完成加載外部資源文件圖片等頁(yè)面加載完成動(dòng)態(tài)加載公共方法動(dòng)態(tài)加載外部文件,并執(zhí)行 DOM readyState屬性共5中狀態(tài) uninitialized:初始狀態(tài) loading:document加載中 loaded: ...
摘要:屬性共中狀態(tài)初始狀態(tài)加載中加載完成已加載并可與用戶交互,但還需要加載圖片等其他資源全部資源加載完成文檔加載順序解析結(jié)構(gòu)加載外部腳本和樣式表文件解析并執(zhí)行腳本樹構(gòu)建完成加載外部資源文件圖片等頁(yè)面加載完成動(dòng)態(tài)加載公共方法動(dòng)態(tài)加載外部文件,并執(zhí)行 DOM readyState屬性共5中狀態(tài) uninitialized:初始狀態(tài) loading:document加載中 loaded: ...
閱讀 3400·2021-11-24 10:30
閱讀 3269·2021-11-22 15:29
閱讀 3706·2021-10-28 09:32
閱讀 1255·2021-09-07 10:22
閱讀 3336·2019-08-30 15:55
閱讀 3619·2019-08-30 15:54
閱讀 3494·2019-08-30 15:54
閱讀 2833·2019-08-30 15:44