load css javascript,js实用方法记录-js动态加载css、js脚本文件

js实用方法记录-动态加载css/js

1.动态加载js文件到head标签并执行回调

方法调用:dynamicLoadJs('http://www.yimo.link/static/j...',function(){alert('加载成功')});

/**

* 动态加载JS

* @param {string} url 脚本地址

* @param {function} callback 回调函数

*/

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.动态加载css文件到head标签并执行回调

方法调用: dynamicLoadCss('http://www.yimo.link/static/c...',function(){alert('加载成功')})

/**

* 动态加载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);

}

/**

* 动态加载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);

/**

* 动态加载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.动态加载iframe到body标签并执行回调

方法调用:dynamicLoadIframe('http://www.yimo.link',function(){alert('加载成功')},'');

/**

* 动态加载Iframe

* @param {string} url 脚本地址

* @param {function} callback 回调函数

* @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

方法测试:openApp('ios页面','**.apk','metools://home');

function openApp(iosDownUrl,andDownUrl,appUrl) {

var ua = navigator.userAgent.toLowerCase();

if (/iphone|ipad|ipod/.test(ua)) {//ios跳转到store

window.location.href = iosDownUrl;

return;

}

if(ua.indexOf("micromessenger") > -1){//微信中不能打开其他app

window.location.href = andDownUrl;

return;

}

if (/android/.test(ua)) {//安卓手机尝试调用app

if(!appUrl){

console.log('未指定需要打开的App,可参考http://www.oschina.net/code/snippet_256033_35330/');

return;

}

var su = appUrl;//"metools://index";//自定义协议

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;

}

export function query(search) {

let str = search || window.location.search

let objURL = {}

str.replace(new RegExp('([^?=&]+)(=([^&]*))?', 'g'), ($0, $1, $2, $3) => {

objURL[$1] = $3

})

return objURL

}

7.使用:query('?v=1')

对象转query参数

function queryString(url, query) {

let str = []

for (let key in query) {

str.push(key + '=' + query[key])

}

let paramStr = str.join('&')

return paramStr ? `${url}?${paramStr}` : url

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4S店客户管理小程序-毕业设计,基于微信小程序+SSM+MySql开发,源码+数据库+论文答辩+毕业论文+视频演示 社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非常有意义的。 本文从管理员、用户的功能要求出发,4S店客户管理系统中的功能模块主要是实现管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理,用户客户端:首页、车展、新闻头条、我的。门店客户端:首页、车展、新闻头条、我的经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与4S店客户管理系统实现的实际需求相结合,讨论了微信开发者技术与后台结合java语言和MySQL数据库开发4S店客户管理系统的使用。 关键字:4S店客户管理系统小程序 微信开发者 Java技术 MySQL数据库 软件的功能: 1、开发实现4S店客户管理系统的整个系统程序; 2、管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理等。 3、用户客户端:首页、车展、新闻头条、我的 4、门店客户端:首页、车展、新闻头条、我的等相应操作; 5、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行交流信息的查看及回复相应操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值