[轉(zhuǎn)帖]js實用方法記錄-js動態(tài)加載css、js腳本文件
當前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
:js實用方法記錄-js動態(tài)加載css、js腳本文件 js實用方法記錄-js動態(tài)加載css、js腳本文件js實用方法記錄-動態(tài)加載css/js1. 動態(tài)加載js文件到head標簽并執(zhí)行回調(diào)
解釋 /** * 動態(tài)加載JS * @param {string} url 腳本地址 * @param {function} callback 回調(diào)函數(shù) */ function dynamicLoadJs(url, callback) { var head = document.getElementsByTagName('head')[0]; var script = document.createElement('script'); script.type = 'text/javascript'; script.src = url; if(typeof(callback)=='function'){ script.onload = script.onreadystatechange = function () { if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete"){ callback(); script.onload = script.onreadystatechange = null; } }; } head.appendChild(script); } 2. 動態(tài)加載css文件到head
解釋 /** * 動態(tài)加載CSS * @param {string} url 樣式地址 */ function dynamicLoadCss(url) { var head = document.getElementsByTagName('head')[0]; var link = document.createElement('link'); link.type='text/css'; link.rel = 'stylesheet'; link.href = url; head.appendChild(link); } 3. 動態(tài)加載腳本文件
解釋 /** * 動態(tài)加載css腳本 * @param {string} cssText css樣式 */ function loadStyleString(cssText) { var style = document.createElement("style"); style.type = "text/css"; try{ // firefox、safari、chrome和Opera style.appendChild(document.createTextNode(cssText)); }catch(ex) { // IE早期的瀏覽器 ,需要使用style元素的stylesheet屬性的cssText屬性 style.styleSheet.cssText = cssText; } document.getElementsByTagName("head")[0].appendChild(style); } // 測試 var css = "body{color:blue;}"; loadStyleString(css); 解釋 /** * 動態(tài)加載js腳本 * @param {string} code js腳本 */ function loadScriptString(code) { var script = document.createElement("script"); script.type = "text/javascript"; try{ // firefox、safari、chrome和Opera script.appendChild(document.createTextNode(code)); }catch(ex) { // IE早期的瀏覽器 ,需要使用script的text屬性來指定javascript代碼。 script.text = code; } document.getElementsByTagName("head")[0].appendChild(script); } // 測試 var text = "function test(){alert('test');}"; loadScriptString(text); test(); 4. 動態(tài)加載iframe到body標簽并執(zhí)行回調(diào)
解釋 /** * 動態(tài)加載Iframe * @param {string} url 腳本地址 * @param {function} callback 回調(diào)函數(shù) * @param {string} style 加載樣式 */ function dynamicLoadIframe(url,callback,style) { var body = document.getElementsByTagName('body')[0]; var iframe = document.createElement('iframe'); iframe.src = url; iframe.style=style||'display:none;width:0px;height:0px;'; if(typeof(callback)=='function'){ iframe.onload = iframe.onreadystatechange = function () { if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") { callback(); iframe.onload = iframe.onreadystatechange = null; } }; } body.appendChild(iframe); } 5. M站中下載/打開app方法測試: 解釋function openApp(iosDownUrl,andDownUrl,appUrl) { var ua = navigator.userAgent.toLowerCase(); if (/iphone|ipad|ipod/.test(ua)) {//ios跳轉(zhuǎn)到store window.location.href = iosDownUrl; return; } if(ua.indexOf("micromessenger") > -1){//微信中不能打開其他app window.location.href = andDownUrl; return; } if (/android/.test(ua)) {//安卓手機嘗試調(diào)用app if(!appUrl){ console.log('未指定需要打開的App,可參考http://www.oschina.net/code/snippet_256033_35330/'); return; } var su = appUrl;//"metools://index";//自定義協(xié)議 var n = setTimeout(function () { window.location.href = andDownUrl }, 500); var r = document.createElement("iframe"); r.src = su; r.onload = function () { console.log('iframe load') clearTimeout(n); r.parentNode.removeChild(r); window.location.href = su; }; r.setAttribute("style", "display:none;"); document.body.appendChild(r); return; } window.location.href = andDownUrl; } 該文章在 2024/3/1 16:22:30 編輯過 |
關鍵字查詢
相關文章
正在查詢... |