#932
展开↯#933
作者:广西南宁市
常见的兼容问题及解决方法
1. 行内元素或行内块元素在代码换行写时会出现左右的间隙,解决方法如下
1) 将代码写在一行上
2) 给父元素设置font-size:0,注意,子元素的字体大小需要单独设置
3) 给元素设置浮动
2. 当图片被放置于块元素中时,图片下方有间隙,解决方法如下
1) 给图片设置display:block;
2) 给图片设置vertical-align:top、middle、bottom
3) 给父元素设置font-size:0
4) 给图片设置浮动,同时清除父元素的塌陷
5) 给父元素加height
3. 该图片加超链接后,在IE浏览器下面图片有边框,解决方法如下
1) 给图片设置border:none
4. 给图片加超链接,然后设置鼠标移过超链接时显示边框的效果,但是发现边框只显示一半,解决办法如下
1) 给超链接设置display:block,同时要解决图片下方有缝隙的问题
5. 行内块元素上下错位问题,解决方法如下
1) 给行内块元素设置vertical-align:top、middle、bottom
2) 将元素浮动
6. 在不同浏览器下面元素的默认的margin和padding的值不相同,解决方法如下
1) *{margin:0;padding:0}
7. 上下的两个元素,默认的间距为较大的margin值,但是如果两个元素设置了浮动,那么这两个元素的间距就是margin之和
8. 父子关系的两个元素,如果给子元素设置float:left,且给子元素设置margin-left,那么在IE6下面margin-left加倍,解决方法如下
1) 给子元素设置:display:inline
9. 父子关系的两个元素,如果给父元素设置了text-align:center,那么在IE7及以下版本中,子元素会水平居中显示,但是在谷歌和火狐及IE高版本浏览器中子元素是不居中显示的,如果要子元素居中显示,解决方法如下:
1) 子元素设置margin:0 auto
10. 父子关系的两个元素,当给子元素设置margin-top时,父元素会同步下移,即子元素的margin-top实际上加到了父元素身上,解决方法如下:
1) 给子元素加margin-top的同时,给父元素加边框
2) 给子元素加margin-top的同时,给父元素加paddint-top:0.1px;
3) 给子元素加margin-top的同时,给父元素设置浮动
4) 不给子元素加margin-top,给父元素加padding-top
11. 两个兄弟元素,如果第一个元素设置了浮动,那么在IE6下面两个元素会在一行显示,且中间会有3px间隙,解决方法如下:
1) 给第二个元素也设置浮动
12. 一个元素如果没有设置height,那么这个元素的高度为自适应高度,此时如果没有内容,元素的高度会为0,如果有内容,那么元素的高度会被撑开。如果想做出如下效果:没有内容,元素有一个最小的高度,有内容元素的高度有内容撑开,可以给元素加min-height(该属性的作用就是给元素设置最小高度),但是需要注意的问题是IE6中不识别min-height,解决方法如下:
1) 给元素设置如下属性div{height:auto!important;height:200px;min-height:200px},属性说明
height:auto!important,该属性的作用是让div的高度在所有浏览器中都是自适应高度,即高度有内容撑开
height:200px,该属性的作用是让IE6浏览器中有最小高度,因为IE6不识别min-height,所以只能用height,不用担心属性值覆盖问题,因为上一条属性中有!important
min-height:200px,该属性的作用是解决除IE6之外的所有浏览器的最小高度问题
13. 元素中内容垂直居中无法使用vertical-align:middle,解决方法如下
1) 给元素设置行高和高度相同的效果
14. 文本和文本框在垂直方向上没有居中对齐(次现象出现IE8及以前的浏览器),解决方法如下
1) 给文本框设置vertical-align:middle,注意的是,该方法只解决了文本框和提示文字的垂直关系,但是文本框里面的内容的垂直对齐方式并没有解决(即在IE低版本中文本框中的内容靠上显示),解决方法是给文本框设置行高和高度相同
15. cursor:hand属性在谷歌、火狐、IE高版本中不以手的形式显示,解决方法如下
1) 用cursor:pointer替换cursor:hand
16. 当通过给li设置高度调节li的显示效果时,在IE低版本中会发现排版错位问题,解决方法如下
1) 不要给li设置height,可以通过给li设置line-height的方法来调节li的高度
17. IE6不允许将:hover加在非超链接元素上,解决方法如下
1) 适当的用超链接将内容包含起来,然后给超链接设置:hover效果
18. 清除浮动时使用.clearFloat类,IE6下面不起作用,原因是clearFloat所在元素没有宽度,解决方法:
1) 给父元素一个固定宽度
2) 给父元素加zoom:1
19. 清除浮动时使用overflow:hidden,IE6下面不起作用,原因是父元素没有固定宽度,解决方法
1) 给父元素加一个固定宽度
2) 给父元素加zoom:1
Run code
Cut to clipboard
文章:常用html、demo代码 发表时间:2017-09-26, 09:08:39
#934
作者:广西南宁市
微信永久图文素材报错 44003
微信上传永久素材图文,一直报{"errcode":44003,"errmsg":"empty news data"}。
看了接口参数,使用post,就是出现44003
最后发现原因,是数据错误导致
微信上传永久素材图文,一直报{"errcode":44003,"errmsg":"empty news data"}。
看了接口参数,使用post,就是出现44003
最后发现原因,是数据错误导致
数据参考格式:
$jsonArr = array(
"articles"=> array(
array(// 我就是少了这层array 才会报empty news data 错误
"title"=> 'dingdingdemo',
"thumb_media_id"=> '填写素材id',
"author"=> 'martin',
"digest"=> 'digest',
"show_cover_pic"=> 0,
"content"=> $content,
"content_source_url"=> 'https://www.baidu.com/',
),
array(
"title"=> 'dingdingdemo2',
"thumb_media_id"=> '填写素材id',
"author"=> 'martin',
"digest"=> 'digest',
"show_cover_pic"=> 0,
"content"=> "content",
"content_source_url"=> 'https://www.baidu.com/',
)
),
);
$json3=json_encode($jsonArr,JSON_UNESCAPED_UNICODE);
进行传输
Run code
Cut to clipboard
文章:weiphp微信多客服系统插件 发表时间:2017-09-26, 09:06:00
#935
作者:广西南宁市
英语48个音标读法:
元音音素:
/i:/ 【衣 发长点】
/I/ 【衣 急促地发声】
/e/ 【哎 发这个音的时候不要把“哎”的ī给读出来,嘴唇放松自然地读】
/æ/ 【哎 发这个音的时候不要把“哎”的ī给读出来,嘴唇扁平地发】
/ə:/ 【额 发长音】
/ə/ 【额 发短音】
/∧/ 【阿 嘴巴微微地张开发出这个音就可以了】
/a:/ 【啊 嘴巴长到最大】
/כ/ 【哦 急促】
/כ:/ 【哦 声音拖长】
/u/ 【乌 急促】
/u:/ 【乌 声音拖长】
/eI/ 【有点像答应人的“诶”的声音】
/aI/ 【唉】
/כI/ 【哦-喂 连着读】
/əu/ 【呕】
/au/ 【傲】
/Iə/ 【衣-饿 连着读】
/εə/ 【哎-饿 连着读】
/uə/ 【乌-饿 连着读】
辅音音素:
/p/ 【普 不要把ǔ给发出来,轻音】
/b/ 【不 不要把ù给发出来,浊音】
/t/ 【特 不要把è给发出来,轻音】
/d/ 【得 不要把é给发出来,浊音】
/k/ 【克 不要把è给发出来,轻音】
/g/ 【各 不要把è给发出来,浊音】
/f/ 【福 不要把ú给发出来,轻音】
/v/ 【有点像摩托车启动的声音,“呜呜呜”地,但是是像发“vúvúvú”一样,不要把ú给发出来,浊音】
/s/ 【丝 像蛇吐芯子发出的那种声音,不要把ī给读出来,轻音】
/z/ 【就是/s/的浊音】
/θ/ 【牙齿咬住舌头的轻音】
/δ/ 【牙齿咬住舌头的浊音】
/∫/ 【西 不要把ī给发出来,轻音】
/з/ 【衣 不要把ī给发出来,浊音】
/h/ 【喝 不要把ē给发出来,轻音】
/r/ 【若 不要把uò给发出来,浊音】
/t∫/ 【七 不要把ī给发出来,轻音】
/dз/ 【姬 不要把ī给发出来,浊音】
/tr/ 【缺 不要把uē给发出来,轻音】
/dr/ 【撅 不要把uē给发出来,浊音】
/ts/ 【次 不要把ì给发出来,轻音】
/dz/ 【自 不要把ì给发出来,浊音】
/m/ 【嘴巴闭住,然后发音,气流从鼻子出来,浊音】
/n/ 【嘴巴微张,舌尖顶住上颚,气流从鼻子出来而不是从嘴巴出来,浊音】
/ŋ/ 【嘴巴长大,舌头向下弯曲,气流从鼻子出来而不是从嘴巴出来,浊音】
/l/ 【有两个读音.一是放在音标结尾发呕,浊音;而是放在音标中发了,浊音】
/w/ 【我 不要把ǒ给发出来,浊音】
/j/ 【呀 不要把ǎ给发出来,浊音】
元音音素:
/i:/ 【衣 发长点】
/I/ 【衣 急促地发声】
/e/ 【哎 发这个音的时候不要把“哎”的ī给读出来,嘴唇放松自然地读】
/æ/ 【哎 发这个音的时候不要把“哎”的ī给读出来,嘴唇扁平地发】
/ə:/ 【额 发长音】
/ə/ 【额 发短音】
/∧/ 【阿 嘴巴微微地张开发出这个音就可以了】
/a:/ 【啊 嘴巴长到最大】
/כ/ 【哦 急促】
/כ:/ 【哦 声音拖长】
/u/ 【乌 急促】
/u:/ 【乌 声音拖长】
/eI/ 【有点像答应人的“诶”的声音】
/aI/ 【唉】
/כI/ 【哦-喂 连着读】
/əu/ 【呕】
/au/ 【傲】
/Iə/ 【衣-饿 连着读】
/εə/ 【哎-饿 连着读】
/uə/ 【乌-饿 连着读】
辅音音素:
/p/ 【普 不要把ǔ给发出来,轻音】
/b/ 【不 不要把ù给发出来,浊音】
/t/ 【特 不要把è给发出来,轻音】
/d/ 【得 不要把é给发出来,浊音】
/k/ 【克 不要把è给发出来,轻音】
/g/ 【各 不要把è给发出来,浊音】
/f/ 【福 不要把ú给发出来,轻音】
/v/ 【有点像摩托车启动的声音,“呜呜呜”地,但是是像发“vúvúvú”一样,不要把ú给发出来,浊音】
/s/ 【丝 像蛇吐芯子发出的那种声音,不要把ī给读出来,轻音】
/z/ 【就是/s/的浊音】
/θ/ 【牙齿咬住舌头的轻音】
/δ/ 【牙齿咬住舌头的浊音】
/∫/ 【西 不要把ī给发出来,轻音】
/з/ 【衣 不要把ī给发出来,浊音】
/h/ 【喝 不要把ē给发出来,轻音】
/r/ 【若 不要把uò给发出来,浊音】
/t∫/ 【七 不要把ī给发出来,轻音】
/dз/ 【姬 不要把ī给发出来,浊音】
/tr/ 【缺 不要把uē给发出来,轻音】
/dr/ 【撅 不要把uē给发出来,浊音】
/ts/ 【次 不要把ì给发出来,轻音】
/dz/ 【自 不要把ì给发出来,浊音】
/m/ 【嘴巴闭住,然后发音,气流从鼻子出来,浊音】
/n/ 【嘴巴微张,舌尖顶住上颚,气流从鼻子出来而不是从嘴巴出来,浊音】
/ŋ/ 【嘴巴长大,舌头向下弯曲,气流从鼻子出来而不是从嘴巴出来,浊音】
/l/ 【有两个读音.一是放在音标结尾发呕,浊音;而是放在音标中发了,浊音】
/w/ 【我 不要把ǒ给发出来,浊音】
/j/ 【呀 不要把ǎ给发出来,浊音】
文章:@意见反馈/技术支持/伊网/安企网 发表时间:2017-09-23, 16:08:59
#936
作者:广东省揭阳市
国家就像一颗大树,高层就像树冠,到处争取阳光雨水,底层就像树根,吸取养分,中间那一层就像树干,虽然比较重要,但容易生虫。
文章:@意见反馈/技术支持/伊网/安企网 发表时间:2017-09-23, 04:30:03
#937
作者:广西南宁市
CDN
WeUI
v1.1.2
v0.4.3
WeUI
v1.1.2
https://res.wx.qq.com/open/libs/weui/1.1.2/weui.css
https://res.wx.qq.com/open/libs/weui/1.1.2/weui.min.css
Run code
Cut to clipboard
v0.4.3
https://res.wx.qq.com/open/libs/weui/0.4.3/weui.css
https://res.wx.qq.com/open/libs/weui/0.4.3/weui.min.css
Run code
Cut to clipboard
文章:WeUI微信小程序前端框架ui简明入门指南 发表时间:2017-09-21, 14:59:04
#938
作者:广西南宁市
<script src="https://weui.io/zepto.min.js"></script>
<div id="sd"></div>
<script id="commentTemplate" type="text/html">
<li>
123
</li>
</script>
<script>
$(window).on('hashchange', function () {
var state = history.state || {};
var url = location.hash.indexOf('#') === 0 ? location.hash : '#';
//var page = self._find('url', url) || self._defaultPage;
/*if (state._pageIndex <= self._pageIndex || self._findInStack(url)) {
self._back(page);
} else {
self._go(page);
}*/
console.log(location.href.split('#')[1]);
//location.hash = url;
$('#sd').html($('#commentTemplate').html());
});
</script>
<a href="#dsf">#dsf</a>
Run code
Cut to clipboard
<script src="https://weui.io/zepto.min.js"></script>
<div id="sd"></div>
<script id="commentTemplate" type="text/html">
<li>
123
</li>
</script>
<script>
$(window).on('hashchange', function () {
var state = history.state || {};
var url = location.hash.indexOf('#') === 0 ? location.hash : '#';
//var page = self._find('url', url) || self._defaultPage;
/*if (state._pageIndex <= self._pageIndex || self._findInStack(url)) {
self._back(page);
} else {
self._go(page);
}*/
console.log(location.href.split('#')[1]);
//location.hash = url;
$('#sd').html($('#commentTemplate').html());
});
</script>
<a href="#dsf">#dsf</a>
Run code
Cut to clipboard
而其中有一个replace,也很有意思,向在替换时,可以接受一个json字符串,然后根据json的key来对比js模块里的key,进行赋值!
真的很有意思!
/**
* Created by jf on 2015/9/11.
* Modified by bear on 2016/9/7.
*/
$(function () {
var pageManager = {
$container: $('#container'),
_pageStack: [],
_configs: [],
_pageAppend: function(){},
_defaultPage: null,
_pageIndex: 1,
setDefault: function (defaultPage) {
this._defaultPage = this._find('name', defaultPage);
return this;
},
setPageAppend: function (pageAppend) {
this._pageAppend = pageAppend;
return this;
},
init: function () {
var self = this;
$(window).on('hashchange', function () {
var state = history.state || {};
var url = location.hash.indexOf('#') === 0 ? location.hash : '#';
var page = self._find('url', url) || self._defaultPage;
if (state._pageIndex <= self._pageIndex || self._findInStack(url)) {
self._back(page);
} else {
self._go(page);
}
});
if (history.state && history.state._pageIndex) {
this._pageIndex = history.state._pageIndex;
}
this._pageIndex--;
var url = location.hash.indexOf('#') === 0 ? location.hash : '#';
var page = self._find('url', url) || self._defaultPage;
this._go(page);
return this;
},
push: function (config) {
this._configs.push(config);
return this;
},
go: function (to) {
var config = this._find('name', to);
if (!config) {
return;
}
location.hash = config.url;
},
_go: function (config) {
this._pageIndex ++;
history.replaceState && history.replaceState({_pageIndex: this._pageIndex}, '', location.href);
var html = $(config.template).html();
var $html = $(html).addClass('slideIn').addClass(config.name);
$html.on('animationend webkitAnimationEnd', function(){
$html.removeClass('slideIn').addClass('js_show');
});
this.$container.append($html);
this._pageAppend.call(this, $html);
this._pageStack.push({
config: config,
dom: $html
});
if (!config.isBind) {
this._bind(config);
}
return this;
},
back: function () {
history.back();
},
_back: function (config) {
this._pageIndex --;
var stack = this._pageStack.pop();
if (!stack) {
return;
}
var url = location.hash.indexOf('#') === 0 ? location.hash : '#';
var found = this._findInStack(url);
if (!found) {
var html = $(config.template).html();
var $html = $(html).addClass('js_show').addClass(config.name);
$html.insertBefore(stack.dom);
if (!config.isBind) {
this._bind(config);
}
this._pageStack.push({
config: config,
dom: $html
});
}
stack.dom.addClass('slideOut').on('animationend webkitAnimationEnd', function () {
stack.dom.remove();
});
return this;
},
_findInStack: function (url) {
var found = null;
for(var i = 0, len = this._pageStack.length; i < len; i++){
var stack = this._pageStack[i];
if (stack.config.url === url) {
found = stack;
break;
}
}
return found;
},
_find: function (key, value) {
var page = null;
for (var i = 0, len = this._configs.length; i < len; i++) {
if (this._configs[i][key] === value) {
page = this._configs[i];
break;
}
}
return page;
},
_bind: function (page) {
var events = page.events || {};
for (var t in events) {
for (var type in events[t]) {
this.$container.on(type, t, events[t][type]);
}
}
page.isBind = true;
}
};
function fastClick(){
var supportTouch = function(){
try {
document.createEvent("TouchEvent");
return true;
} catch (e) {
return false;
}
}();
var _old$On = $.fn.on;
$.fn.on = function(){
if(/click/.test(arguments[0]) && typeof arguments[1] == 'function' && supportTouch){ // 只扩展支持touch的当前元素的click事件
var touchStartY, callback = arguments[1];
_old$On.apply(this, ['touchstart', function(e){
touchStartY = e.changedTouches[0].clientY;
}]);
_old$On.apply(this, ['touchend', function(e){
if (Math.abs(e.changedTouches[0].clientY - touchStartY) > 10) return;
e.preventDefault();
callback.apply(this, [e]);
}]);
}else{
_old$On.apply(this, arguments);
}
return this;
};
}
function preload(){
$(window).on("load", function(){
var imgList = [
"./images/layers/content.png",
"./images/layers/navigation.png",
"./images/layers/popout.png",
"./images/layers/transparent.gif"
];
for (var i = 0, len = imgList.length; i < len; ++i) {
new Image().src = imgList[i];
}
});
}
function androidInputBugFix(){
// .container 设置了 overflow 属性, 导致 Android 手机下输入框获取焦点时, 输入法挡住输入框的 bug
// 相关 issue: https://github.com/weui/weui/issues/15
// 解决方法:
// 0. .container 去掉 overflow 属性, 但此 demo 下会引发别的问题
// 1. 参考 http://stackoverflow.com/questions/23757345/android-does-not-correctly-scroll-on-input-focus-if-not-body-element
// Android 手机下, input 或 textarea 元素聚焦时, 主动滚一把
if (/Android/gi.test(navigator.userAgent)) {
window.addEventListener('resize', function () {
if (document.activeElement.tagName == 'INPUT' || document.activeElement.tagName == 'TEXTAREA') {
window.setTimeout(function () {
document.activeElement.scrollIntoViewIfNeeded();
}, 0);
}
})
}
}
function setJSAPI(){
var option = {
title: 'WeUI, 为微信 Web 服务量身设计',
desc: 'WeUI, 为微信 Web 服务量身设计',
link: "https://weui.io",
imgUrl: 'https://mmbiz.qpic.cn/mmemoticon/ajNVdqHZLLA16apETUPXh9Q5GLpSic7lGuiaic0jqMt4UY8P4KHSBpEWgM7uMlbxxnVR7596b3NPjUfwg7cFbfCtA/0'
};
$.getJSON('https://weui.io/api/sign?url=' + encodeURIComponent(location.href.split('#')[0]), function (res) {
wx.config({
beta: true,
debug: false,
appId: res.appid,
timestamp: res.timestamp,
nonceStr: res.nonceStr,
signature: res.signature,
jsApiList: [
'onMenuShareTimeline',
'onMenuShareAppMessage',
'onMenuShareQQ',
'onMenuShareWeibo',
'onMenuShareQZone',
// 'setNavigationBarColor',
'setBounceBackground'
]
});
wx.ready(function () {
/*
wx.invoke('setNavigationBarColor', {
color: '#F8F8F8'
});
*/
wx.invoke('setBounceBackground', {
'backgroundColor': '#F8F8F8',
'footerBounceColor' : '#F8F8F8'
});
wx.onMenuShareTimeline(option);
wx.onMenuShareQQ(option);
wx.onMenuShareAppMessage({
title: 'WeUI',
desc: '为微信 Web 服务量身设计',
link: location.href,
imgUrl: 'https://mmbiz.qpic.cn/mmemoticon/ajNVdqHZLLA16apETUPXh9Q5GLpSic7lGuiaic0jqMt4UY8P4KHSBpEWgM7uMlbxxnVR7596b3NPjUfwg7cFbfCtA/0'
});
});
});
}
function setPageManager(){
var pages = {}, tpls = $('script[type="text/html"]');
var winH = $(window).height();
for (var i = 0, len = tpls.length; i < len; ++i) {
var tpl = tpls[i], name = tpl.id.replace(/tpl_/, '');
pages[name] = {
name: name,
url: '#' + name,
template: '#' + tpl.id
};
}
pages.home.url = '#';
for (var page in pages) {
pageManager.push(pages[page]);
}
pageManager
.setPageAppend(function($html){
var $foot = $html.find('.page__ft');
if($foot.length < 1) return;
if($foot.position().top + $foot.height() < winH){
$foot.addClass('j_bottom');
}else{
$foot.removeClass('j_bottom');
}
})
.setDefault('home')
.init();
}
function init(){
preload();
fastClick();
androidInputBugFix();
setJSAPI();
setPageManager();
window.pageManager = pageManager;
window.home = function(){
location.hash = '';
};
}
init();
});
Run code
Cut to clipboard
文章:WeUI微信小程序前端框架ui简明入门指南 发表时间:2017-09-21, 14:50:00
#939
作者:广西南宁市
function androidInputBugFix(){
// .container 设置了 overflow 属性, 导致 Android 手机下输入框获取焦点时, 输入法挡住输入框的 bug
// 相关 issue: https://github.com/weui/weui/issues/15
// 解决方法:
// 0. .container 去掉 overflow 属性, 但此 demo 下会引发别的问题
// 1. 参考 http://stackoverflow.com/questions/23757345/android-does-not-correctly-scroll-on-input-focus-if-not-body-element
// Android 手机下, input 或 textarea 元素聚焦时, 主动滚一把
if (/Android/gi.test(navigator.userAgent)) {
window.addEventListener('resize', function () {
if (document.activeElement.tagName == 'INPUT' || document.activeElement.tagName == 'TEXTAREA') {
window.setTimeout(function () {
document.activeElement.scrollIntoViewIfNeeded();
}, 0);
}
})
}
}
Run code
Cut to clipboard
文章:WeUI微信小程序前端框架ui简明入门指南 发表时间:2017-09-21, 12:52:43
#941
作者:广西南宁市
"不可证伪"即为宗教, 现实中好多人是"永远正确"的,对这些人怎么摆事实讲道理都没用,他们总会找到理由(即使这理由蠢到让人伤心).少看心灵鸡汤,多看科学方法.
文章:张朝阳:中国教育的失败是一直在宣扬答案的「唯一性」 发表时间:2017-09-20, 10:57:33
#942
展开↯#943
展开↯#944
作者:广西南宁市
作为聪明人的领导者,你首先应该思维上所向披靡,思维在第一线上。要让聪明人组成的团队能明白,你是能够理解他们正在做的事情的。
文章:张朝阳:中国教育的失败是一直在宣扬答案的「唯一性」 发表时间:2017-09-20, 10:54:25
#945
作者:广西南宁市
使用闭包的注意点
1.对捕获的变量只是个引用,不是复制;
2.父函数每调用一次,都会创建一个新的词法环境,会产生不同的闭包;
3.循环中问题
应用闭包
1.对捕获的变量只是个引用,不是复制;
function f() {
var num = 1;
function g() {
//函数f()被执行之后,运行到此行,g.Scope =>f.LE;
alert(num);
}
num++;
g();//当函数g()第一次被执行时,f.LE里num=2;
}
f();//弹出2;说明弹出的num是对f.LE里num的引用,而不是复制
Run code
Cut to clipboard
2.父函数每调用一次,都会创建一个新的词法环境,会产生不同的闭包;
function f() {
var num = 1;
return function () {
num++;
alert(num);
}
}
var result1= f();//f()第一次被调用,创建了一个新的词法环境 result1.Scope => f.LE
result1();//2
result1();//3
var result2 = f();//f()第二次被调用,又创建了一个新的词法环境 result2.Scope => f.LE
result2();//2
result2();//3
Run code
Cut to clipboard
3.循环中问题
<div id="1">1</div>
<div id="2">2</div>
<div id="3">3</div>
Run code
Cut to clipboard
for(var i = 0;i<=3;i++){
//因为JS中没有块级作用域的概念,所以代码扫描到for循环这里时,
//i是一个全局变量,并且,i=4;for循环只是给ele循环绑定了点击事件;
//也就是说,onclick事件没有执行的时候,i的值已经是4了
var ele = document.getElementById("i");
ele.onclick = function () {
alert(i);//所以当点击时,都弹出4
}
}
Run code
Cut to clipboard
应用闭包
var i;
for(i =1;i<=3;i++){
var ele = document.getElementById(i);
ele.onclick = (function (id) {
return function () {//return一个函数给onclick事件
alert(id);//捕获父函数的id的值
}
})(i);//循环第一次的时候,i=1,立即调用,产生一个闭包,将i作为参数传入,依次
}
Run code
Cut to clipboard
文章:简说javascript的this的指向4个运用场景 发表时间:2017-09-19, 17:48:12
#946
作者:广西南宁市
文本内容比较 Notepad++
Notepad++文本比较插件:Compare
下载该“ComparePlugin.dll”文件后,复制到Notepad++安装目录下的\plugins目录即可。 #,广西南宁市,2017-09-19,16:55:13, notePad++ compare插件 64位 #,广西南宁市,2017-09-19,17:06:14, notepad++ FTP插件
Notepad++文本比较插件:Compare
下载该“ComparePlugin.dll”文件后,复制到Notepad++安装目录下的\plugins目录即可。
文章:电脑中所有html都有DropFileName = "svchost.exe"病毒解决方法 发表时间:2017-09-19, 16:48:44
#948
作者:北京市
人可以随时转身,但不可以一直后退 #,广西南宁市,2017-09-18,14:59:35, 只要获得安身立命的基础,那就有可能等到巨头犯错的机会。 #,广东省揭阳市,2017-09-19,01:43:48, 佛:随便你说,我已超脱。 #,广西南宁市,2017-09-19,12:19:14, 没有高下之分,只有左右之别
#,广西南宁市,2017-09-19,12:20:42, 永远要向有结果的人学习,因为结果不会撒谎
文章:@意见反馈/技术支持/伊网/安企网 发表时间:2017-09-16, 20:40:15
#949
作者:广西南宁市
如果是你php内容不在同一个文件,肯定首先都是要先引入的,要先引入肯定要先知道文件路径这是必不可少的,如果你已经知道文件内容了,而不想引入方式来解决,直接写到一个文件里面不就可以了么?
eval函数可以直接把字符串作为php代码执行,如 eval('$A=1;'); echo $A;输出1;
但是不建议这样用,比较你的需求是已经知道代码内容了,只是不想引入,不想引入写到一个文件就行了,你说文件太多,写到一个里面太乱,太长,那肯定是鱼和熊掌不能兼得的事情。
另外也可以试试文件导入缓存机制,第一次引入文件需要读取io重复读取不用读取io
eval函数可以直接把字符串作为php代码执行,如 eval('$A=1;'); echo $A;输出1;
但是不建议这样用,比较你的需求是已经知道代码内容了,只是不想引入,不想引入写到一个文件就行了,你说文件太多,写到一个里面太乱,太长,那肯定是鱼和熊掌不能兼得的事情。
另外也可以试试文件导入缓存机制,第一次引入文件需要读取io重复读取不用读取io
function includes($file){
$static $cache = [];
if(isset($cache[$file])){
return $cache[$file];
}else{
return $cache[$file] = include $file;
}
}
Run code
Cut to clipboard
文章:ThinkPHP中实现微信支付(jsapi支付)流程 发表时间:2017-09-19, 11:54:40
#950
作者:广西南宁市
div设置overflow-y:scroll时怎么阻止body页面的滚动?
js body滚动冒泡
js滚动冒泡
js body滚动冒泡
js滚动冒泡
对局部需要滚动条的元素,尝试使用这个css属性:
-webkit-overflow-scrolling: touch;
Run code
Cut to clipboard
两种方法,1.设置body:fixed.2.设置body height:100%,设置body的子元素div高度100%,overflow:hidden
Run code
Cut to clipboard
文章:常用html、demo代码 发表时间:2017-09-19, 11:51:43
PHP的time()函数生成当前时间的秒数,但是在一些情况下我们需要获取当前服务器时间和GMT(格林威治时间)1970年1月0时0分0秒的毫秒数,与Java中的currentTimeMilis()函数一样,觉得以下的函数最合适,特记录下来。
public function getCurrentMilis() { $mill_time = microtime(); $timeInfo = explode(' ', $mill_time); $milis_time = sprintf('%d%03d',$timeInfo[1],$timeInfo[0] * 1000); return $time; }