unset SSH_ASKPASS
作者:mjpclab
Google Chrome Stable for Windows最新版本下载
注意下载地址长期不变,但下到的始终是当前最新的Stable版。
32位:
https://dl.google.com/tag/s/appguid%3D%7B8A69D345-D564-463C-AFF1-A69D9E530F96%7D%26iid%3D%7BCEC27557-0338-A6BE-F10F-A625517C44BB%7D%26lang%3Dzh-CN%26browser%3D3%26usagestats%3D0%26appname%3DGoogle%2520Chrome%26needsadmin%3Dtrue/update2/installers/ChromeStandaloneSetup.exe
64位:
https://dl.google.com/tag/s/appguid%3D%7B8A69D345-D564-463C-AFF1-A69D9E530F96%7D%26iid%3D%7BCEC27557-0338-A6BE-F10F-A625517C44BB%7D%26lang%3Dzh-CN%26browser%3D3%26usagestats%3D0%26appname%3DGoogle%2520Chrome%26needsadmin%3Dtrue%26ap%3Dx64-stable%26installdataindex%3Ddefaultbrowser/update2/installers/ChromeStandaloneSetup64.exe
wget https://dl.google.com/tag/s/appguid%3D%7B8A69D345-D564-463C-AFF1-A69D9E530F96%7D%26iid%3D%7BCEC27557-0338-A6BE-F10F-A625517C44BB%7D%26lang%3Dzh-CN%26browser%3D3%26usagestats%3D0%26appname%3DGoogle%2520Chrome%26needsadmin%3Dtrue%26ap%3Dx64-stable%26installdataindex%3Ddefaultbrowser/update2/installers/ChromeStandaloneSetup64.exe https://dl.google.com/tag/s/appguid%3D%7B8A69D345-D564-463C-AFF1-A69D9E530F96%7D%26iid%3D%7BCEC27557-0338-A6BE-F10F-A625517C44BB%7D%26lang%3Dzh-CN%26browser%3D3%26usagestats%3D0%26appname%3DGoogle%2520Chrome%26needsadmin%3Dtrue/update2/installers/ChromeStandaloneSetup.exe
PHP:支持中文(非英文)的basename()函数
查了下原生php的basename()好像并不能处理中文文件名,所以查到网上有人给出了如下自定义函数:
function get_basename($filename){
return preg_replace('/^.+[\\\\\\/]/', '', $filename); //我觉得正则可以写为'/^.+[\\/]/'
}
对于该函数有3点需要说明:
1. 不能处理以”/”结尾的目录名;
2. 不支持第二个参数suffix;
3. 正则表达式比较消耗系统资源。
因此,我给出了仅使用字符串处理函数的版本,弥补以上3点缺陷:
function get_basename($filename,$suffix='') {
$f=$filename;
$f=rtrim($f,'/');
$startPos=strrpos($f,'/');
$startPos=($startPos !== FALSE) ? $startPos+1 : 0;
$f=substr($f, $startPos);
if(!empty($suffix)) {
$filenameLen=strlen($f);
$checkEndPos=$filenameLen-strlen($suffix);
if(substr($f,$checkEndPos)===$suffix) {
$f=substr($f,0,$checkEndPos);
}
}
return $f;
}
[转发+推荐]深入图解字符集与字符集编码
深入图解字符集与字符集编码(一)——charset vs encoding
http://my.oschina.net/goldenshaw/blog/304493
深入图解字符集与字符集编码(二)——字符集及其编号
http://my.oschina.net/goldenshaw/blog/305805
深入图解字符集与字符集编码(三)——定长与变长
http://my.oschina.net/goldenshaw/blog/307708
深入图解字符集与字符集编码(四)
http://my.oschina.net/goldenshaw/blog/310331
深入图解字符集与字符集编码(五)——Unicode的代码单元
http://my.oschina.net/goldenshaw/blog/311848
js分享到微博的简单URL
var title='分享标题'
var url=location.href;
var site = "示例网站";
var picUrls=['图片URL1', '图片URL2', '图片URL3'];
var sina_weibo = "http://v.t.sina.com.cn/share/share.php?title=" + encodeURIComponent(title) + "&url=" + url + "&pic=" + picUrls.join("||") + "&source=bookmark&appkey=&ralateUid=";
var tentcent_weibo = "http://share.v.t.qq.com/index.php?c=share&a=index&title=" + encodeURIComponent(title) + "&url=" + url + "&pic=" + picUrls.join("|") + "&site=" + site + "&appkey=";
var qzone = "http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?title=" + encodeURIComponent(title) + "&url=" + url + "&pics=" + picUrls.join("|") + "&summary=";
Google Chrome Stable for Linux最新版本下载
注意下载地址长期不变,但下到的始终是当前最新的Stable版。
DEB包 | RPM包 | |
---|---|---|
~~32位~~ | ~~https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb~~ | ~~https://dl.google.com/linux/direct/google-chrome-stable_current_i386.rpm~~ |
64位 | https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb | https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm |
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
浏览器和元素的尺寸、位置有关的属性和方法
学习笔记,写的不是很全,兼容性尚未测试。
属性 | 作用 | 兼容性 |
screen.width screen.heihgt |
||
screen.availWidth screen.availHeight |
||
window.innerWidth window.innerHeight |
浏览器视口尺寸,去除浏览器菜单栏、工具栏、状态栏,但包含滚动条的尺寸, | |
window.outerWidth window.outerHeight |
浏览器窗口外边框尺寸 | |
浏览器窗口外边框尺寸 | ||
window.screenX window.screenY window.screenTop window.screenLeft |
窗口在屏幕中的位置 | |
window.scrollX window.pageXOffset window.scrollY window.pageYOffset |
文档滚动位置 | |
Element.getBoundingClientRect() | 返回元素对应border-box方框到视口的偏移坐标, | |
Element.getClientRects() | 返回类数组,对以inline方式显示的元素来说,每行行框都是一个方框,返回所有这些方框到视口的偏移坐标,对显示为块级的元素来说,效果同getBoundingClientRect() | |
document.elementFromPoint() | 指定相对于视口的坐标,返回该坐标处的元素。如果有定位元素,返回z-index最大(最上层)的,否则返回该处在文档树中最深的节点元素。 | |
Element.offsetWidth Element.offsetHeight Element.offsetLeft Element.offsetTop |
元素滚动可见部分内容border-box的尺寸。offsetLeft, offsetTop返回到offsetParent的距离 | |
Element.offsetParent | 偏移的上级参照元素 | |
Element.clientWidth Element.clientHeight Element.clientLeft Element.clientTop |
元素滚动可见部分内容padding-box(不含滚动条)的尺寸,对显示为inline的元素来说,始终返回0。clientLeft, clientTop返回padding-box外边缘到border-box外边缘的距离,通常来说就是边框宽度。但对于从右到左书写的语言来说,垂直滚动条出现在padding-box左侧,所以client-left还包括了滚动条的宽度。 |
|
Element.scrollWidth Element.scrollHeight Element.scrollLeft Element.scrollTop |
padding-box滚动整体的尺寸。在没有内容溢出时,scrollWidth, scrollHeight和clientWidth, clientHeight是相等的。 scrollLeft, scrollTop为视口相对元素左上角的滚动偏移量,且为可写属性。 | |
window.scroll() window.scrollTo() |
||
window.scrollBy() | ||
Element.scrollIntoView() |
JavaScript客户端document对象不常用属性
document.readyState
文档载入状态,按顺序分别为
- loading,正在解析文档
- interactive,文档解析完成,但文档的其它资源(如图片)尚未完全载入,此时document也会触发DOMContentLoaded事件
- complete,文档资源完全载入完毕,此时也会触发window的load事件
document.compatMode
页面渲染模式,有标准模式和怪异模式,未声明doctype的文档将被以怪异模式渲染,以保持向后兼容,取值有
- CSS1Compat,正在使用标准模式
- BackCompat或该属性未定义,表示正在使用怪异模式。
document.domain
指定文档的同源策略,以便不同子域的脚本可以访问其他子域的资源。
document.URL
文档的初始URL,不同于location.href,为只读属性。
document.lastModified
文档的最后修改时间。
document.referrer
文档的来源URL,从哪个地址跳转到当前文档。
document.title
文档的标题。
JavaScript中有关对象与构造函数的有关操作
获取对象的构造函数
obj.constructor;
获取对象的原型
obj.constructor.prototype; //不可靠
Object.getPrototypeOf(obj); //ES5新增,获取obj的原型对象
protoObj.isPrototypeOf(obj); //ES5新增,判断protoObj是否为obj的原型对象
obj instanceof Func; //判断obj是否为Func的实例
JavaScript中有关对象属性的一些操作
创建对象
var obj={};
var obj=new Object();
var obj=Object.create(Object.prototype); //Object.create() 为ES5新增
var obj=Object.create(Object.prototype,<属性描述符列表>);
<属性描述符列表>格式:{
prop1: <属性描述符1>,
prop2: <属性描述符2>,
...
}
属性描述符可以是:{
value:<value>,
writable:[true|false],
enumerable:[true|false],
configurable:[true|false]
} 或 {
get: function() {},
set: function() {},
enumerable:[true|false],
configurable:[true|false]
}
删除属性
delete obj.property;
delete obj['property'];
检测属性
'property' in obj; //检测属性是否存在
obj.hasOwnProperty('property'); //检测该属性是否为自有属性(非继承而来)
obj.propertyIsEnumerable('property'); //ES5新增,检测属性是否为自有属性,且可枚举
Object.getOwnPropertyDescriptor(obj, 'property') //ES5新增,获取对象obj的属性property的属性描述符
设置属性
obj.property=value;
obj['property']=value;
obj={
prop1: value1,
prop2: value2,
//getter和setter为ES5新增
get prop3() {
return somevalue;
},
set prop3(value) {
//process and save value
}
};
配置属性的特性,ES5新增
Object.defineProperty(obj,'property',<属性描述符>);
obj的属性会被定义,同时返回obj
例如:
Object.defineProperty(obj,'property',{value:'value', writable:true, enumerable:true, configurable:true});
Object.defineProperty(obj,'property',{get:function(){}, set:function(){}, enumerable:true, configurable:true});
批量配置属性特性
Object.defineProperties(obj,<属性描述符列表>);
//obj的属性会被设置,同时返回obj
枚举属性
for(property in obj) { console.log(property); } //只能列出可枚举属性
Object.keys(obj); //ES5新增,返回属性名数组,只能列出自有属性,只能列出可枚举属性
Object.getOwnPropertyNames(obj); //ES5新增,返回属性名数组,只能列出自有属性,列出的属性包括不可枚举属性
修改对象可扩展性,ES5新增
Object.preventExtensions(obj); //阻止对象扩展,不能添加新属性
Object.isExtensible(obj); //检测对象是否可扩展
Object.seal(obj); //封闭对象,除了不能扩展,还不能配置属性特性,但可写属性依然可以赋值
Object.isSealed(obj); //检测对象是否封闭的
Object.freeze(obj); //冻结对象,除了封闭对象,所有属性都配置为只读
Object.isFrozen(obj); //检测对象是否冻结的