kk Blog —— 通用基础


date [-d @int|str] [+%s|"+%F %T"]
netstat -ltunp
sar -n DEV 1

textarea自动调整高宽

https://blog.51cto.com/haihuiwei/1734068

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/**
 * 统计区分中英文字符字数
 */
function getWordsCnt(str)
{
	var n = 0;
	var ch = 0;
	for(var i = 0; i < str.length; i ++){
		var ch = str.charCodeAt(i);
		if (ch > 255) { // 中文字符集
			n += 2;
			ch = 1;
		} else {
			n ++;
		}
	}
	if (ch == 1) {
		if (n >= 23)
			return 160;
		if (n >= 19)
			return 140;
		if (n >= 15)
			return 110;
		if (n >= 10)
			return 92;
		if (n > 7)
			return 80;
	} else {
		if (n >= 22)
			return 150;
		if (n >= 18)
			return 135;
		if (n >= 14)
			return 110;
		if (n >= 10)
			return 90;
		if (n > 7)
			return 80;
	}
	return 0;
}

function autoTextarea (elem, extra, maxHeight)
{
	extra = extra || 0;
	var isFirefox = !!document.getBoxObjectFor || 'mozInnerScreenX' in window,
	isOpera = !!window.opera && !!window.opera.toString().indexOf('Opera'),
	addEvent = function (type, callback) {
		elem.addEventListener ?
			elem.addEventListener(type, callback, false) :
			elem.attachEvent('on' + type, callback);
	},
	getStyle = elem.currentStyle ? function (name) {
		var val = elem.currentStyle[name];
		if (name === 'height' && val.search(/px/i) !== 1) {
			var rect = elem.getBoundingClientRect();
			return rect.bottom - rect.top -
				parseFloat(getStyle('paddingTop')) -
				parseFloat(getStyle('paddingBottom')) + 'px';
		};
		return val;
	} : function (name) {
		return getComputedStyle(elem, null)[name];
	},
	minHeight = parseFloat(getStyle('height'));

	elem.style.resize = 'none';
	var change = function () {
		var scrollTopp, height,
			padding = 0,
			style = elem.style;
		if (elem._length === elem.value.length) return;
		elem._length = elem.value.length;
		if (!isFirefox && !isOpera) {
			padding = parseInt(getStyle('paddingTop')) + parseInt(getStyle('paddingBottom'));
		};
		scrollTopp = document.body.scrollTopp || document.documentElement.scrollTopp;
		elem.style.height = minHeight + 'px';

		// 控制最小宽度
		var minw = getWordsCnt(elem.value);
		if (elem.style.minWidth < minw)
			elem.style.minWidth = minw;

		if (elem.scrollHeight > minHeight) {
			if (maxHeight && elem.scrollHeight > maxHeight) {
				height = maxHeight - padding;
				style.overflowY = 'auto';
			} else {
				height = elem.scrollHeight - padding;
				style.overflowY = 'hidden';
			};
			style.height = height + extra + 'px';
			scrollTopp += parseInt(style.height) - elem.currHeight;
			document.body.scrollTopp = scrollTopp;
			document.documentElement.scrollTopp = scrollTopp;
			elem.currHeight = parseInt(style.height);
		};
	};
	addEvent('propertychange', change);
	addEvent('input', change);
	addEvent('focus', change);
	change();
}

language, web

« NTP log 记录每次发包 iframe网页嵌套 »