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中有关对象属性的一些操作

创建对象

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);   //检测对象是否冻结的