消息提示

注册成功!

确定 取消
用户名: 密码: 注册
标题: 发帖时间:


乌托
通过mui.fire()方法可触发目标窗口的自定义事件
2017-07-13 10:48:27
通过mui.fire()方法可触发目标窗口的自定义事件:
.fire( target , event , data )
target :窗口对象
event :时间名
data:数据(对象)

例:
//初始化预加载详情页面
mui.init({
  preloadPages:[{
    id:"detail.html",
    url:"detail.html"           
  }]
});
//取得窗口对象
var  detailPage = plus.webview.getWebviewById("detail.html");
//自定义时间
  mui.fire(detailPage,"newsId",{
    id:id
  });
//打开详情页面          
  mui.openWindow({
    id:"detail.html"
  });
});  

//detail.html页
//添加newId自定义事件监听
window.addEventListener("newsId",function(event){
  //获得事件参数
  var id = event.detail.id;
  //根据id向服务器请求新闻详情
  .....
});

乌托
mui的预加载
2017-07-13 16:56:07
方式一:通过mui.init方法中的preloadPages参数进行配置.
mui.init({
  preloadPages:[
    {
      url:prelaod-page-url,
      id:preload-page-id,
      styles:{},//窗口参数
      extras:{},//自定义扩展参数
      subpages:[{},{}]//预加载页面的子页面
    }
  ],
  preloadLimit:5//预加载窗口数量限制(一旦超出,先进先出)默认不限制
});

该种方案使用简单、可预加载多个页面,但不会返回预加载每个页面的引用,若要获得对应webview引用,还需要通过plus.webview.getWebviewById方式获得;另外,因为mui.init是异步执行,执行完mui.init方法后立即获得对应webview引用,可能会失败,例如如下代码:

mui.init({
  preloadPages:[
    {
      url:"list.html",
      id:"list"
    }
  ]
});
var list = plus.webview.getWebviewByid("list");//这里可能返回空;

方式二:通过mui.preload方法预加载:
var page = mui.preload({
    url:new-page-url,
    id:new-page-id,//默认使用当前页面的url作为id
    styles:{},//窗口参数
    extras:{}//自定义扩展参数
});
通过mui.preload()方法预加载,可立即返回对应webview的引用,但一次仅能预加载一个页面;若需加载多个webview,则需多次调用mui.preload()方法;

乌托
php处理json api
2017-07-29 11:33:47
1. json_decode — 对 JSON 格式的字符串进行编码 

说明 
mixed json_decode ( string $json [, bool $assoc ] ) 
接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 


2. json_encode  — 对 php 数组进行 JSON 编码 

说明 
string json_encode ( mixed $value [, int $options = 0 ] ) 
返回 value 值的 JSON 形式 

乌托
input placeholder 的css颜色设置
2017-09-05 13:58:35
/* placeholder color custom */
input.search-input::-moz-placeholder{ color: #FFFFFF;}
input.search-input::-webkit-input-placeholder{ color:#FFFFFF;}
input.search-input:-ms-input-placeholder{color:#FFFFFF;}

乌托
jquery 中ajax常用参数
2017-09-13 10:33:48
$.ajax({
   type: "POST",
   url: "some.php",
  dataType:"json",
async :""
   data: {name:"John",location:"Boston"},
   success: function(msg){
     alert( "Data Saved: " + msg );
   },
  error:function (XMLHttpRequest, textStatus, errorThrown) { 
 
}
});


1.url: 
要求为String类型的参数,(默认为当前页地址)发送请求的地址。
2.type: 
要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。
3.timeout: 
要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局设置。
4.async: 
要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行。
5.cache: 
要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false),设置为false将不会从浏览器缓存中加载请求信息。
6.data: 
要求为Object或String类型的参数,发送到服务器的数据。如果已经不是字符串,将自动转换为字符串格式。get请求中将附加在url后。防止这种自动转换,可以查看  processData选项。对象必须为key/value格式,例如{foo1:"bar1",foo2:"bar2"}转换为&foo1=bar1&foo2=bar2。如果是数组,JQuery将自动为不同值对应同一个名称。例如{foo:["bar1","bar2"]}转换为&foo=bar1&foo=bar2。
7.dataType: 
要求为String类型的参数,预期服务器返回的数据类型。如果不指定,JQuery将自动根据http包mime信息返回responseXML或responseText,并作为回调函数参数传递。可用的类型如下:
xml:返回XML文档,可用JQuery处理。
html:返回纯文本HTML信息;包含的script标签会在插入DOM时执行。
script:返回纯文本JavaScript代码。不会自动缓存结果。除非设置了cache参数。注意在远程请求时(不在同一个域下),所有post请求都将转为get请求。
json:返回JSON数据。
jsonp:JSONP格式。使用SONP形式调用函数时,例如myurl?callback=?,JQuery将自动替换后一个“?”为正确的函数名,以执行回调函数。
text:返回纯文本字符串。
8.beforeSend:
要求为Function类型的参数,发送请求前可以修改XMLHttpRequest对象的函数,例如添加自定义HTTP头。在beforeSend中如果返回false可以取消本次ajax请求。XMLHttpRequest对象是惟一的参数。
9.complete:
要求为Function类型的参数,请求完成后调用的回调函数(请求成功或失败时均调用)。参数:XMLHttpRequest对象和一个描述成功请求类型的字符串。      
10.success:
要求为Function类型的参数,请求成功后调用的回调函数,有两个参数。
        (1)由服务器返回,并根据dataType参数进行处理后的数据。
         (2)描述状态的字符串。      
11.error:
要求为Function类型的参数,请求失败时被调用的函数。该函数有3个参数,即XMLHttpRequest对象、错误信息、捕获的错误对象(可选)。
12.contentType:
要求为String类型的参数,当发送信息至服务器时,内容编码类型默认为"application/x-www-form-urlencoded"。该默认值适合大多数应用场合。
13.dataFilter:
要求为Function类型的参数,给Ajax返回的原始数据进行预处理的函数。提供data和type两个参数。data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。       
14.dataFilter:
要求为Function类型的参数,给Ajax返回的原始数据进行预处理的函数。提供data和type两个参数。data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。         
15.global:
要求为Boolean类型的参数,默认为true。表示是否触发全局ajax事件。设置为false将不会触发全局ajax事件,ajaxStart或ajaxStop可用于控制各种ajax事件。
16.ifModified:
要求为Boolean类型的参数,默认为false。仅在服务器数据改变时获取新数据。服务器数据改变判断的依据是Last-Modified头信息。默认值是false,即忽略头信息。
17.jsonp:
要求为String类型的参数,在一个jsonp请求中重写回调函数的名字。该值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,例如{jsonp:"onJsonPLoad"}会导致将"onJsonPLoad=?"传给服务器。
18.username:
要求为String类型的参数,用于响应HTTP访问认证请求的用户名。
19.password:
要求为String类型的参数,用于响应HTTP访问认证请求的密码。
20.processData:
要求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度来讲并非字符串)以配合默认内容类型"application/x-www-form-urlencoded"。如果要发送DOM树信息或者其他不希望转换的信息,请设置为false。
21.scriptCharset:
要求为String类型的参数,只有当请求时dataType为"jsonp"或者"script",并且type是GET时才会用于强制修改字符集(charset)。通常在本地和远程的内容编码不同时使用。

乌托
媒体查询media参数以及其兼容性问题(转载)
2017-10-15 08:16:47
一、设置meta标签
<meta name="viewport" content="width=device-width, initial-scale=1,minmum-scale=1,maxmum-scale=1,user-scalable=no"> 
参数解释:
width=device-width   宽度等于当前设备宽度
initial-scale=1初始缩放比例,默认为1
minmum-scale=1允许用户缩放到的最小比例,默认为1
maxmum-scale=1允许用户缩放到的最大比例,默认为1
user-scalabel=no用户是否可以手动缩放,默认设置为no 我们不希望用户缩放页面

二、加载IE兼容文件
<!--[if lt IE 9]>  
<script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->

三、设置IE默认渲染方式
现在有很多人的IE浏览器都升级到IE9以上了,所以这个时候就有又很多诡异的事情发生了,例如现在是IE9的浏览器,但是浏览器的文档模式却是IE8:  
解决办法:
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">  
这句话的意思是将IE浏览器默认的渲染方式设为电脑上所装IE浏览器的最高标准,比如我电脑上装了IE10和IE8两个浏览器,如果我用IE8浏览器打开这个页面,会以IE10 的标准来渲染页面。
如果有的用户电脑里面装了这个chrome的插件,就可以让电脑里面的IE不管是哪个版本的都可以使用Webkit引擎及V8引擎进行排版及运算,无比给力,不过如果用户没装这个插件,那这段代码就会让IE以最高的文档模式展现效果。

四、media 参数

width:浏览器可视宽度。

height:浏览器可视高度。

device-width:设备屏幕的宽度。

device-height:设备屏幕的高度。

orientation:检测设备目前处于横向还是纵向状态。

aspect-ratio:检测浏览器可视宽度和高度的比例。(例如:aspect-ratio:16/9)

device-aspect-ratio:检测设备的宽度和高度的比例。

color:检测颜色的位数。(例如:min-color:32就会检测设备是否拥有32位颜色)

color-index:检查设备颜色索引表中的颜色,他的值不能是负数。

monochrome:检测单色楨缓冲区域中的每个像素的位数。(这个太高级,估计咱很少会用的到)

resolution:检测屏幕或打印机的分辨率。(例如:min-resolution:300dpi或min-resolution:118dpcm)。

grid:检测输出的设备是网格的还是位图设备。


转载:http://blog.csdn.net/nineteen19/article/details/49423703

乌托
js动态加载css与js
2017-10-15 08:37:20
一. jquery加载js与css
1.加载js
$.getScript("./test.js");  //加载js文件
$.getScript("./test.js",function(){  //加载test.js,成功后,并执行回调函数
  console.log("加载js文件");
});
2.加载css
$("<link>").attr({ rel: "stylesheet",type: "text/css",href: "site.css"}).appendTo("head");

二.jacascript加载js与css
function loadJs(url,callback){
        var script=document.createElement("script");

        script.type="text/javascript";
        if(typeof(callback)!="undefined"){
            if(script.readyState){
                script.onreadystatechange=function(){

                    if(script.readyState == "loaded" || script.readyState == "complete"){
                        script.onreadystatechange=null;
                        callback();
                    }
                }

            }else{
                script.onload=function(){
                    callback();
                }
            }
        }
        script.src=url;
        document.body.appendChild(script);
    }

    loadJs("test.js",function(){
        alert("done");
    });
//加载css的原理相同,只不过插入的的父节点是head标签。

三、动态改变现有属性
动态改变已有script的src属性
<script src=""1.js"id="s1"></script>
<script language="javascript">
s1.src="test.js"
</script>

乌托
图片预加载
2017-12-04 16:14:54
function loadImage(url, callback) {
    var img = new Image(); //创建一个Image对象,实现图片的预下载
    img.src = url;
      
    if(img.complete) { // 如果图片已经存在于浏览器缓存,直接调用回调函数
        callback.call(img);
        return; // 直接返回,不用再处理onload事件
    }
    img.onload = function () { //图片下载完毕时异步调用callback函数。
        callback.call(img);//将回调函数的this替换为Image对象
    };
};

乌托
js 自定义加减乘除方法(防止js自身计算错误)()
2018-02-27 09:15:01
/** 
 * 乘法 
 * @param arg1 
 * @param arg2 
 * @returns {Number} 
 */  
function accMul(arg1, arg2) {  
    var m = 0, s1 = arg1.toString(), s2 = arg2.toString();  
    try { m += s1.split(".")[1].length } catch (e) { }  
    try { m += s2.split(".")[1].length } catch (e) { }  
    return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)  
}  
/** 
 * 除法 
 * @param arg1 
 * @param arg2 
 * @returns {Number} 
 */  
function accDiv(arg1, arg2) {  
    var t1 = 0, t2 = 0, r1, r2;  
    try { t1 = arg1.toString().split(".")[1].length } catch (e) { }  
    try { t2 = arg2.toString().split(".")[1].length } catch (e) { }  
    with (Math) {  
        r1 = Number(arg1.toString().replace(".", ""))  
        r2 = Number(arg2.toString().replace(".", ""))  
        return (r1 / r2) * pow(10, t2 - t1);  
    }  
}  
/** 
 * 加法 
 * @param arg1 
 * @param arg2 
 * @returns {Number} 
 */  
function accAdd(arg1, arg2) {  
    var r1, r2, m, c;  
    try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }  
    try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }  
    c = Math.abs(r1 - r2);  
    m = Math.pow(10, Math.max(r1, r2))  
    if (c > 0) {  
        var cm = Math.pow(10, c);  
        if (r1 > r2) {  
            arg1 = Number(arg1.toString().replace(".", ""));  
            arg2 = Number(arg2.toString().replace(".", "")) * cm;  
        }  
        else {  
            arg1 = Number(arg1.toString().replace(".", "")) * cm;  
            arg2 = Number(arg2.toString().replace(".", ""));  
        }  
    }  
    else {  
        arg1 = Number(arg1.toString().replace(".", ""));  
        arg2 = Number(arg2.toString().replace(".", ""));  
    }  
    return (arg1 + arg2) / m  
}  
/** 
 * 减法 
 * @param arg1 
 * @param arg2 
 * @returns 
 */  
function accSub(arg1,arg2){  
    var r1,r2,m,n;  
    try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}  
    try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}  
    m=Math.pow(10,Math.max(r1,r2));  
    //last modify by deeka  
    //动态控制精度长度  
    n=(r1>=r2)?r1:r2;  
    return ((arg1*m-arg2*m)/m).toFixed(n);  
    }  

乌托
IOS Input Disabled默认样式问题
2018-04-26 10:18:53
 color: red;
    opacity: 1;
    -webkit-opacity: 1;
    -webkit-text-fill-color: #000;

乌托
events模块 多个 同一sql 语句一次调用
2018-05-24 09:05:05
var proxy = new events.EventEmitter();
var status = "ready";
var select = function(callback){
   proxy.once("selected",callback);
   if(status ==="ready"){
      status = "pending";
      db.select("sql",function(results){
          proxy.emit("slected",results);
          status = "ready";
      })

   }
}

乌托
正则 test 慎用 /g
2018-12-03 14:08:24
今天在工作时,发现了一个问题:
test()检测指定字符串是否存在返回一个布尔值

var  reg=/钱/g;
var s = "阿三大苏打撒旦钱"
var str="用钱宝"; 
document.write(reg.test(s)); 
document.write(reg.test(str));  
按道理两次打印出来都应该是true,true,而最终结果为true,false。
此时我们需要注意啦,在我们定义的正则表达式中后面加上了搜索的方式,g表示全文查找。而且在正则表达式内部有一个lastIndex来记录匹配的位置,第一次调用test()后,那么lastIndex就不再等于0,而是7,当下次在调用该方法的时候,字符串的匹配会从lastIndex位置进行匹配,故最终返回false.所以不要随意添加g.
遇到此种情况后的解决方法:
1.去除g;
2.在第二次使用前,设置reg.lastIndex=0即可。

乌托
svg学习
2018-12-27 18:42:57
M
    移动到的点的x轴和y轴的坐标
L
    需要两个参数,分别是一个点的x轴和y轴坐标,L命令将会在当前位置和新位置(L前面画笔所在的点)之间画一条线段。
H
    绘制平行线
V
    绘制垂直线
Z
    从当前点画一条直线到路径的起点
C   
    三次贝塞尔曲线
S  
    三次贝塞尔曲线 的简写

参考: https://www.jianshu.com/p/c819ae16d29b

乌托
js对url进行编码和解码(三种方式区别)
2019-04-15 11:12:11
*** 只有 0-9[a-Z] $ - _ . + ! * " ( ) , 以及某些保留字,才能不经过编码直接用于 URL。

***例如:搜索的中文关键字,复制网址之后再粘贴就会发现该URL已经被转码。

1、escape 和 unescape

原理:对除ASCII字母、数字、标点符号 @  *  _  +  -  .  / 以外的其他字符进行编码。

编码:escape("http://www.baidu.com?name=zhang@xiao@jie&order=1")

   结果:"http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1"

   escape("张")

   结果:"%u5F20"

解码:unescape("http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1")

   结果:"http://www.baidu.com?name=zhang@xiao@jie&order=1"

   unescape("%u5F20")

   结果:"张"

2、encodeURI 和 decodeURI

原理:返回编码为有效的统一资源标识符 (URI) 的字符串,不会被编码的字符:! @ # $ & * ( ) = : / ; ? + "

     encodeURI()是Javascript中真正用来对URL编码的函数。

编码:encodeURI("http://www.baidu.com?name=zhang@xiao@jie&order=1")

   结果:"http://www.baidu.com?name=zhang@xiao@jie&order=1"

解码:decodeURI("http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1")

   结果:"http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1"

3、encodeURIComponent 和 decodeURIComponent

原理:对URL的组成部分进行个别编码,而不用于对整个URL进行编码

编码:encodeURIComponent("http://www.baidu.com?name=zhang@xiao@jie&order=1")
   结果:"http%3A%2F%2Fwww.baidu.com%3Fname%3Dzhang%40xiao%40jie%26order%3D1"

解码:decodeURIComponent("http%3A%2F%2Fwww.baidu.com%3Fname%3Dzhang%40xiao%40jie%26order%3D1")

   "http://www.baidu.com?name=zhang@xiao@jie&order=1"

乌托
JS对于字符串的切割截取
2019-04-15 11:12:55
JS对于字符串的切割截取
对于字符串的切割截取平时所用可能不是特别多,而且分的比较细,所以自备自查。有备无患。

由于之前所有均在一个demo测试,若是哪里打错了,敬请谅解。一些其余属性找时间继续添加。

1.函数:split()

 功能:使用一个指定的分隔符把一个字符串分割存储到数组

例子: str=”jpg|bmp|gif|ico|png”; arr=str.split(”|”);

//arr是一个包含字符值”jpg”、”bmp”、”gif”、”ico”和”png”的数组

 

 

2.函数:join()

功能:使用您选择的分隔符将一个数组合并为一个字符串

例子: var delimitedString=myArray.join(delimiter);

var myList=new Array(”jpg”,”bmp”,”gif”,”ico”,”png”);

var portableList=myList.join(”|”);

//结果是jpg|bmp|gif|ico|png

 

 

3.函数:concat()

功能:将两个数组连接在一起;

例子:arr1=[1,2,3,4]

  arr2=[5,6,7,8]

  alert(arr1.concat(arr2))  //结果为[1,2,3,4,5,6,7,8]

 

 

4.函数:charAt()

功能:返回指定位置的字符。字符串中第一个字符的下标是 0。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。

例子:var str="a,g,i,d,o,v,w,d,k,p"

alert(str.charAt(2))  //结果为g

 

 

5:函数:charCodeAt()

功能:charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。

方法 charCodeAt() 与 charAt() 方法执行的操作相似,只不过前者返回的是位于指定位置的字符的编码,而后者返回的是字符子串。

例子:var str="a,g,i,d,o,v,w,d,k,p"

alert(str.charCodeAt(2))  //结果为103。即g的Unicode编码为103

 

6.函数:slice()

功能:arrayObject.slice(start,end)

  start:必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。

  end:可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

  返回一个新的数组,包含从start到end(不包括该元素)的arrayobject中的元素。

例子:var str="ahji3o3s4e6p8a0sdewqdasj"

  alert(str.slice(2,5))   //结果ji3

 

 

7.函数:substring()

定义和用法 substring 方法用于提取字符串中介于两个指定下标之间的字符。

语法 stringObject.substring(start,stop)

 start 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。

stop 可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。

如果省略该参数,那么返回的子串会一直到字符串的结尾。

返回 一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。 说明 substring 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。 如果 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。 如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。 如果 start 或 end 为负数,那么它将被替换为 0。

例子:var str="ahji3o3s4e6p8a0sdewqdasj"

alert(str.substring(2,6))   //结果为ji3o3

 

 

8.函数:substr

定义和用法 substr 方法用于返回一个从指定位置开始的指定长度的子字符串。

语法 stringObject.substr(start [, length ])

参数  start 必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。

   length 可选。在返回的子字符串中应包括的字符个数。 说明 如果 length 为 0 或负数,将返回一个空字符串。 如果没有指定该参数,则子字符串将延续到stringObject的最后。

举例: var str = "0123456789";

   alert(str.substring(0));------------"0123456789"

   alert(str.substring(5));------------"56789"

  alert(str.substring(10));-----------""

  alert(str.substring(12));-----------""

  alert(str.substring(-5));-----------"0123456789"

  alert(str.substring(-10));----------"0123456789"

  alert(str.substring(-12));----------"0123456789"

  alert(str.substring(0,5));----------"01234"

  alert(str.substring(0,10));---------"0123456789"

  alert(str.substring(0,12));---------"0123456789"

  alert(str.substring(2,0));----------"01"

  alert(str.substring(2,2));----------""

  alert(str.substring(2,5));----------"234"

  alert(str.substring(2,12));---------"23456789"

  alert(str.substring(2,-2));---------"01"

  alert(str.substring(-1,5));---------"01234"

  alert(str.substring(-1,-5));--------""

 
没有查到相关记录或没有相关回复!
上一页  第3页,共0页
回复

标题: 回复:

内容:

发贴人: 游客