微信开发网址

微信APP

微信公众平台

微信支付平台

微信开放平台

其他

最棒的 JavaScript 学习指南(2018版)

译者注:原文作者研究了近2.4万篇 JavaScript 文章得出这篇总结,全文包含学习指南、新人上手、Webpack、性能、基础概念、函数式编程、面试、教程案例、Async Await、并发、V8、机器学习、数据可视化、调试、单元测试等章节,非常适合用于对自己 JavaScript 技术栈的比对,用于查漏补缺,适合收藏阅读。有删减。文中如有错误,欢迎评论指出。

 

在过去的一年间(2017年),我们对比了近24000篇 JavaScript 文章,并从中挑选出了最好的55篇。我们做了这个目录,认为阅读有经验的程序员写的文章是一个很好的学习方式。在学习了一两门课程之后,您可能在构建和发布实际应用时面临许多挑战。通过这个目录,您可以更轻松地找到去年的最佳 JavaScript 教程,在这里有经验的开发人员会分享他们学习 JavaScript 的课程、见解和遇到的错误。

这个目录有15个关键的主题,如下所示。他们分别是学习指南、新人上手、Webpack、性能、基础概念、函数式编程、面试、教程案例、Async Await、并发、V8、机器学习、数据可视化、调试、单元测试。

指南

上手

Webpack

性能

概念

函数式编程

面试

教程案例

Async Await

并发

V8

机器学习

数据可视化

调试

单元测试

 

 

来源:http://www.cnblogs.com/lhb25/p/javascript-book-2018.html

wordpress手机版文章图片自适应方法

wordpress手机版文章图片自适应方法

在编辑文章时,插入的图片,系统会自动添加宽和高,这样在手机版中不好自适应.

通过查找wordpress的相关函数,发现可以通过在输出前进行过滤.

代码实现方法如下:

// 自适应图片删除width和height
function remove_width_height_attribute($content){
preg_match_all('/<[img|IMG].*?src=['|"](.*?(?:[.gif|.jpg|.png.bmp]))['|"].*?[/]?>/', $content, $images);
if(!empty($images)) {
foreach($images[0] as $index => $value){
$new_img = preg_replace('/(width|height)="d*"s/', "", $images[0][$index]);
$content = str_replace($images[0][$index], $new_img, $content);
}
}
return $content;
}
// 判断是否是移动设备浏览
if(wp_is_mobile()) {
// 删除文章前台显示内容中img的width和height属性
add_filter('the_content', 'remove_width_height_attribute', 99);
}
//add_filter( 'post_thumbnail_html', 'remove_width_height_attribute', 10 );//删除后台缩略图代码中img的width和height属性
//add_filter( 'image_send_to_editor', 'remove_width_height_attribute', 10 );//删除后台插入缩略图代码中img的width和height属性

 

当然,也可以在插入图片时去除图片的宽度和高度,不过,这样的话,电脑版的图片也不好控制.所以我这里不进行处理.

如果你需要在插入时去除,可以把代码中最后两行注释去掉,即可.

 

PHP mysql_fetch_row() 和mysql_fetch_array的区别

mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。

通常我们都是需要字段名作为键名来使用,所以只需要记住mysql_fetch_array()即可。

用 mysql_fetch_array() 并不明显比用 mysql_fetch_row() 慢,而且还明显提供了更多的值。

mysql_fetch_row() 函数从结果集中取得一行作为数字数组。mysql_fetch_array() 函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有。

语法:

mysql_fetch_array(data,array_type)
参数 描述
data 可选。规定要使用的数据指针。该数据指针是 mysql_query() 函数产生的结果。
array_type 可选。规定返回哪种结果。可能的值:

  • MYSQL_ASSOC - 关联数组
  • MYSQL_NUM - 数字数组
  • MYSQL_BOTH - 默认。同时产生关联和数字数组

注释:本函数返回的字段名是区分大小写的。

 

 

小程序名称设置规范

1、名称设置方法

1)小程序名称可以由中文、数字、英文。长度在4-30个字符之间,一个中文字等于2个字符。
2)公众号、小程序在微信公众平台上的名称是唯一的,且属于同一主体下,可以重名。
3)不得与不同主体的公众号名称重名。

2、小程序改名方法

修改方法:登录【微信公众平台小程序】-> 【设置】->【基本信息】->【小程序名称】->【修改】->通过管理员扫码验证后即可进入修改页面,当修改名称命中保护词的时候,需要进一步审核通过方可修改成功,名称修改成功后,原名称会立即释放。

类型 个人 非个人
发布前修改机会 2次 2次
发布后修改机会 2次/年 通过微信认证修改

温馨提示:
1)个人类型的小程序已发布后一自然年内可有2次修改名称的机会。(例:2016年1月1日至2016年12月31日内可修改2次名称)

2)同一个主体的小程序和公众号可以同名;
3)若修改名称涉嫌命中保护词的情况,审核时间为7个工作日内。
4)名称修改超过2次小程序要先发布后,再去微信认证,认证过程中会有改名入口,如果小程序未发布,即使小程序去微信认证也不会有改名入口。

3、小程序改名名称释放时间
发布前 小程序名称从A改到B,名称A立即释放。
发布后 帐号改名成功后,原来的名称会有一个2*24小时(即2天)的保护期,在此期间,符合命名唯一规则情况下,只有同一主体下的其他帐号可以使用该名称,主体不一致的,则需要在保护期满后才能申请使用该名称。

4、同一个主体的小程序和公众号可以同名
如果你的公众号、小程序在微信公众平台上的名称是唯一的,且属于同一主体下,那么它们可以同名了。
例如:公司A拥有公众号【微信公开课】,同时可申请小程序【微信公开课】,反过来也成立。

5、同一主体下存在多个重名公众号,可以同名
由于历史原因,你可能在早期申请了多个重名公众号,那么你的小程序依旧能申请使用这个名称。
例如:公司A早期申请了多个公众号【微信公开课】(第一个)、【微信公开课】(第二个)、【微信公开课】(第三个),仍可申请小程序【微信公开课】。

6、不同主体重名公众号,不能同名
要是存在这样一种情况:你和其他一个或多个主体使用相同的公众号名称(由于微信公众平台早期允许),那么这个名称在小程序内就不能被使用。
例如:个人A和公司B同时拥有公众号【张三】,则【张三】的名称在小程序内不可被申请使用。

8、同主体下,名称后缀“+”仍然可用

公众号和小程序名称均不与其他重复的情况下,可支持同主体申请名称添加“+”后缀,这一点对公众号和小程序都适用。
例如:公众号【微信公开课】的主体,支持申请【微信公开课+】小程序。

微信小程序用户头像下载问题

经过长期的排查,在做生成海报时,测试环境一直没问题,在手机的正式环境一直不成功.

最后发现是保存的用户头像问题.

需要把头像的网址添加到downloadFile合法域名中.

 

微信头像域名换成了:thirdwx.qlogo.cn

以前是 wx.qlogo.cn

18.12.03更新: 建议把这两个域名都添加,微信最近又更换回了wx.qlogo.cn,也可能是个例,谁又知道呢。

https://p.qlogo.cn

https://wx.qlogo.cn

https://thirdwx.qlogo.cn

建议把这三个都添加

js点击按钮显示或隐藏内容

js点击按钮显示或隐藏内容,可以做手机版的菜单功能,比较方便.

js代码

<script type="text/javascript">
window.onload=function(){
  var obt=document.getElementById("all");
  var odiv=document.getElementById("menu");
  obt.onclick=function(){
    if(odiv.style.display=="none"){
      odiv.style.display="block";
      obt.value="隐藏模块";
    }
    else{
      odiv.style.display="none";
      obt.value="显示模块";
    }
  }
}
</script>

 

html代码

<div id="all">菜单</div>
<div id="menu" style="display:none;">
<ul>
<li>首页</li>
<li>产品</li>
<li>资讯</li>
</ul>
<div>

 

 

 

 

 

wordpress高亮代码插件Pure-Highlightjs行号显示错误解决方法

wordpress高亮代码插件Pure-Highlightjs行号显示错误解决方法

在使用Pure-Highlightjs时,使用chrome浏览器时行号会显示为undefined,IE中倒不会,通过进行替换掉undefined的方法来解决,只需要在Pure-Highlightjs/highlight/prism.js中添加一行,位置如图

                    o = o.join("<span></span>"),
                    o = o.replace(/undefined/g,""),//添加的行

 

说明:

插件Pure-Highlightjs地址:https://blog.sunriseydy.top/technology/server-blog/wordpress/pure-highlightjs-with-line-number/

版本:v3 Prism 版下载地址:https://github.com/sunriseydy/Pure-Highlightjs/raw/Prism/Pure-Highlightjs-3.0.1.zip

其它版本未测试有无此问题.

 

 

原生js图片替换位置

原生js图片替换位置

 

 

<script>
function changeImg(id,img) {
document.getElementById(id).src =img;
}
</script>
<p><img src="https://www.baidu.com/img/baidu_jgylogo3.gif" id="baidu"/></p>
<p><img src="https://www.baidu.com/img/baidu_jgylogo3.gif" id="qihu"/></p>
<p>
<img src="https://www.baidu.com/img/bd_logo1.png?where=super" onclick="changeImg('baidu',this.src)" />
<img src="https://p.ssl.qhimg.com/t01e92920a7b90351cc.png" onclick="changeImg('qihu',this.src)" />
</p>

 

同步修改ID方法

<script>
function changeImg(sclass,sid,img) {
tclass = getElementsByClass(sclass);
tclass[0].src =img;
tid =tclass[0].getAttribute("id");
tclass[0].setAttribute("id",'s'+sid);
}

function getElementsByClass(classnames){
var classobj = new Array();
var classint = 0;
var tags =document.getElementsByTagName("*");
for(var i in tags){
if(tags[i].nodeType == 1){
if(tags[i].getAttribute("class") == classnames){
classobj[classint] = tags[i];
classint++;
}
}
}
return classobj;
}
</script>
<p><img src="https://www.baidu.com/img/baidu_jgylogo3.gif" id="baidu" class="baidu"/></p>
<p><img src="https://www.baidu.com/img/baidu_jgylogo3.gif" id="qihu" class="qihu"/></p>
<p>
<img src="https://www.baidu.com/img/bd_logo1.png?where=super" onclick="changeImg('baidu','12',this.src)" />
<img src="https://p.ssl.qhimg.com/t01e92920a7b90351cc.png" onclick="changeImg('baidu','13',this.src)" />
<img src="https://p.ssl.qhimg.com/t01e92920a7b90351cc.png" onclick="changeImg('qihu','23',this.src)" />
</p>