javascript:(function () {
setNativeValue = function (qs, value) {
const element = document.querySelector(qs);
const valueSetter = Object.getOwnPropertyDescriptor(element, ‘value’).set;
const prototype = Object.getPrototypeOf(element);
const prototypeValueSetter = Object.getOwnPropertyDescriptor(prototype, ‘value’).set;
if (valueSetter && valueSetter !== prototypeValueSetter) {
prototypeValueSetter.call(element, value)
} else {
valueSetter.call(element, value)
}
element.dispatchEvent(new Event(‘input’, {bubbles: true}))
};
setNativeValue(‘#testtt’, ‘testttt’);
})();
分类目录归档:前端
Illegal unquoted character ((CTRL-CHAR, code X)): has to be escaped using backslash to be included in string value
代码中的X对应错误中的code 值。
|
Bin
(二进制)
|
Oct
(八进制)
|
Dec
(十进制)
|
Hex
(十六进制)
|
缩写/字符
|
解释
|
|
0000 0000
|
00
|
0
|
0x00
|
NUL(null)
|
空字符
|
|
0000 0001
|
01
|
1
|
0x01
|
SOH(start of headline)
|
标题开始
|
|
0000 0010
|
02
|
2
|
0x02
|
STX (start of text)
|
正文开始
|
|
0000 0011
|
03
|
3
|
0x03
|
ETX (end of text)
|
正文结束
|
|
0000 0100
|
04
|
4
|
0x04
|
EOT (end of transmission)
|
传输结束
|
|
0000 0101
|
05
|
5
|
0x05
|
ENQ (enquiry)
|
请求
|
|
0000 0110
|
06
|
6
|
0x06
|
ACK (acknowledge)
|
收到通知
|
|
0000 0111
|
07
|
7
|
0x07
|
BEL (bell)
|
响铃
|
|
0000 1000
|
010
|
8
|
0x08
|
BS (backspace)
|
退格
|
|
0000 1001
|
011
|
9
|
0x09
|
HT (horizontal tab)
|
水平制表符
|
|
0000 1010
|
012
|
10
|
0x0A
|
LF (NL line feed, new line)
|
换行键
|
|
0000 1011
|
013
|
11
|
0x0B
|
VT (vertical tab)
|
垂直制表符
|
|
0000 1100
|
014
|
12
|
0x0C
|
FF (NP form feed, new page)
|
换页键
|
|
0000 1101
|
015
|
13
|
0x0D
|
CR (carriage return)
|
回车键
|
|
0000 1110
|
016
|
14
|
0x0E
|
SO (shift out)
|
不用切换
|
|
0000 1111
|
017
|
15
|
0x0F
|
SI (shift in)
|
启用切换
|
|
0001 0000
|
020
|
16
|
0x10
|
DLE (data link escape)
|
数据链路转义
|
|
0001 0001
|
021
|
17
|
0x11
|
DC1 (device control 1)
|
设备控制1
|
|
0001 0010
|
022
|
18
|
0x12
|
DC2 (device control 2)
|
设备控制2
|
|
0001 0011
|
023
|
19
|
0x13
|
DC3 (device control 3)
|
设备控制3
|
|
0001 0100
|
024
|
20
|
0x14
|
DC4 (device control 4)
|
设备控制4
|
|
0001 0101
|
025
|
21
|
0x15
|
NAK (negative acknowledge)
|
拒绝接收
|
|
0001 0110
|
026
|
22
|
0x16
|
SYN (synchronous idle)
|
同步空闲
|
|
0001 0111
|
027
|
23
|
0x17
|
ETB (end of trans. block)
|
结束传输块
|
|
0001 1000
|
030
|
24
|
0x18
|
CAN (cancel)
|
取消
|
|
0001 1001
|
031
|
25
|
0x19
|
EM (end of medium)
|
媒介结束
|
|
0001 1010
|
032
|
26
|
0x1A
|
SUB (substitute)
|
代替
|
|
0001 1011
|
033
|
27
|
0x1B
|
ESC (escape)
|
换码(溢出)
|
|
0001 1100
|
034
|
28
|
0x1C
|
FS (file separator)
|
文件分隔符
|
|
0001 1101
|
035
|
29
|
0x1D
|
GS (group separator)
|
分组符
|
|
0001 1110
|
036
|
30
|
0x1E
|
RS (record separator)
|
记录分隔符
|
|
0001 1111
|
037
|
31
|
0x1F
|
US (unit separator)
|
单元分隔符
|
|
0010 0000
|
040
|
32
|
0x20
|
(space)
|
空格
|
|
0010 0001
|
041
|
33
|
0x21
|
!
|
叹号 |
|
0010 0010
|
042
|
34
|
0x22
|
“
|
双引号 |
|
0010 0011
|
043
|
35
|
0x23
|
#
|
井号 |
|
0010 0100
|
044
|
36
|
0x24
|
$
|
美元符 |
|
0010 0101
|
045
|
37
|
0x25
|
%
|
百分号 |
|
0010 0110
|
046
|
38
|
0x26
|
&
|
和号 |
|
0010 0111
|
047
|
39
|
0x27
|
‘
|
闭单引号 |
|
0010 1000
|
050
|
40
|
0x28
|
(
|
开括号
|
|
0010 1001
|
051
|
41
|
0x29
|
)
|
闭括号
|
|
0010 1010
|
052
|
42
|
0x2A
|
*
|
星号 |
|
0010 1011
|
053
|
43
|
0x2B
|
+
|
加号 |
|
0010 1100
|
054
|
44
|
0x2C
|
,
|
逗号 |
|
0010 1101
|
055
|
45
|
0x2D
|
–
|
减号/破折号 |
|
0010 1110
|
056
|
46
|
0x2E
|
.
|
句号 |
|
0010 1111
|
057
|
47
|
0x2F
|
/
|
斜杠 |
|
0011 0000
|
060
|
48
|
0x30
|
0
|
字符0 |
|
0011 0001
|
061
|
49
|
0x31
|
1
|
字符1 |
|
0011 0010
|
062
|
50
|
0x32
|
2
|
字符2 |
|
0011 0011
|
063
|
51
|
0x33
|
3
|
字符3 |
|
0011 0100
|
064
|
52
|
0x34
|
4
|
字符4 |
|
0011 0101
|
065
|
53
|
0x35
|
5
|
字符5 |
|
0011 0110
|
066
|
54
|
0x36
|
6
|
字符6 |
|
0011 0111
|
067
|
55
|
0x37
|
7
|
字符7 |
|
0011 1000
|
070
|
56
|
0x38
|
8
|
字符8 |
|
0011 1001
|
071
|
57
|
0x39
|
9
|
字符9 |
|
0011 1010
|
072
|
58
|
0x3A
|
:
|
冒号 |
|
0011 1011
|
073
|
59
|
0x3B
|
;
|
分号 |
|
0011 1100
|
074
|
60
|
0x3C
|
<
|
小于 |
|
0011 1101
|
075
|
61
|
0x3D
|
=
|
等号 |
|
0011 1110
|
076
|
62
|
0x3E
|
>
|
大于 |
|
0011 1111
|
077
|
63
|
0x3F
|
?
|
问号 |
|
0100 0000
|
0100
|
64
|
0x40
|
@
|
电子邮件符号 |
|
0100 0001
|
0101
|
65
|
0x41
|
A
|
大写字母A |
|
0100 0010
|
0102
|
66
|
0x42
|
B
|
大写字母B |
|
0100 0011
|
0103
|
67
|
0x43
|
C
|
大写字母C |
|
0100 0100
|
0104
|
68
|
0x44
|
D
|
大写字母D |
|
0100 0101
|
0105
|
69
|
0x45
|
E
|
大写字母E |
|
0100 0110
|
0106
|
70
|
0x46
|
F
|
大写字母F |
|
0100 0111
|
0107
|
71
|
0x47
|
G
|
大写字母G |
|
0100 1000
|
0110
|
72
|
0x48
|
H
|
大写字母H |
|
0100 1001
|
0111
|
73
|
0x49
|
I
|
大写字母I |
|
01001010
|
0112
|
74
|
0x4A
|
J
|
大写字母J |
|
0100 1011
|
0113
|
75
|
0x4B
|
K
|
大写字母K |
|
0100 1100
|
0114
|
76
|
0x4C
|
L
|
大写字母L |
|
0100 1101
|
0115
|
77
|
0x4D
|
M
|
大写字母M |
|
0100 1110
|
0116
|
78
|
0x4E
|
N
|
大写字母N |
|
0100 1111
|
0117
|
79
|
0x4F
|
O
|
大写字母O |
|
0101 0000
|
0120
|
80
|
0x50
|
P
|
大写字母P |
|
0101 0001
|
0121
|
81
|
0x51
|
Q
|
大写字母Q |
|
0101 0010
|
0122
|
82
|
0x52
|
R
|
大写字母R |
|
0101 0011
|
0123
|
83
|
0x53
|
S
|
大写字母S |
|
0101 0100
|
0124
|
84
|
0x54
|
T
|
大写字母T |
|
0101 0101
|
0125
|
85
|
0x55
|
U
|
大写字母U |
|
0101 0110
|
0126
|
86
|
0x56
|
V
|
大写字母V |
|
0101 0111
|
0127
|
87
|
0x57
|
W
|
大写字母W |
|
0101 1000
|
0130
|
88
|
0x58
|
X
|
大写字母X |
|
0101 1001
|
0131
|
89
|
0x59
|
Y
|
大写字母Y |
|
0101 1010
|
0132
|
90
|
0x5A
|
Z
|
大写字母Z |
|
0101 1011
|
0133
|
91
|
0x5B
|
[
|
开方括号 |
|
0101 1100
|
0134
|
92
|
0x5C
|
\
|
反斜杠 |
|
0101 1101
|
0135
|
93
|
0x5D
|
]
|
闭方括号 |
|
0101 1110
|
0136
|
94
|
0x5E
|
^
|
脱字符 |
|
0101 1111
|
0137
|
95
|
0x5F
|
_
|
下划线 |
|
0110 0000
|
0140
|
96
|
0x60
|
`
|
开单引号 |
|
0110 0001
|
0141
|
97
|
0x61
|
a
|
小写字母a |
|
0110 0010
|
0142
|
98
|
0x62
|
b
|
小写字母b |
|
0110 0011
|
0143
|
99
|
0x63
|
c
|
小写字母c |
|
0110 0100
|
0144
|
100
|
0x64
|
d
|
小写字母d |
|
0110 0101
|
0145
|
101
|
0x65
|
e
|
小写字母e |
|
0110 0110
|
0146
|
102
|
0x66
|
f
|
小写字母f |
|
0110 0111
|
0147
|
103
|
0x67
|
g
|
小写字母g |
|
0110 1000
|
0150
|
104
|
0x68
|
h
|
小写字母h |
|
0110 1001
|
0151
|
105
|
0x69
|
i
|
小写字母i |
|
0110 1010
|
0152
|
106
|
0x6A
|
j
|
小写字母j |
|
0110 1011
|
0153
|
107
|
0x6B
|
k
|
小写字母k |
|
0110 1100
|
0154
|
108
|
0x6C
|
l
|
小写字母l |
|
0110 1101
|
0155
|
109
|
0x6D
|
m
|
小写字母m |
|
0110 1110
|
0156
|
110
|
0x6E
|
n
|
小写字母n |
|
0110 1111
|
0157
|
111
|
0x6F
|
o
|
小写字母o |
|
0111 0000
|
0160
|
112
|
0x70
|
p
|
小写字母p |
|
0111 0001
|
0161
|
113
|
0x71
|
q
|
小写字母q |
|
0111 0010
|
0162
|
114
|
0x72
|
r
|
小写字母r |
|
0111 0011
|
0163
|
115
|
0x73
|
s
|
小写字母s |
|
0111 0100
|
0164
|
116
|
0x74
|
t
|
小写字母t |
|
0111 0101
|
0165
|
117
|
0x75
|
u
|
小写字母u |
|
0111 0110
|
0166
|
118
|
0x76
|
v
|
小写字母v |
|
0111 0111
|
0167
|
119
|
0x77
|
w
|
小写字母w |
|
0111 1000
|
0170
|
120
|
0x78
|
x
|
小写字母x |
|
0111 1001
|
0171
|
121
|
0x79
|
y
|
小写字母y |
|
0111 1010
|
0172
|
122
|
0x7A
|
z
|
小写字母z |
|
0111 1011
|
0173
|
123
|
0x7B
|
{
|
开花括号 |
|
0111 1100
|
0174
|
124
|
0x7C
|
|
|
垂线 |
|
0111 1101
|
0175
|
125
|
0x7D
|
}
|
闭花括号 |
|
0111 1110
|
0176
|
126
|
0x7E
|
~
|
波浪号 |
|
0111 1111
|
0177
|
127
|
0x7F
|
DEL (delete)
|
删除
|
帆软cjkEncode 源码
function cjkEncode(text) {
if (text == null) {
return “”;
}
var newText = “”;
for (var i = 0; i < text.length; i++) {
var code = text.charCodeAt (i);
if (code >= 128 || code == 91 || code == 93) {//91 is “[“, 93 is “]”.
newText += “[” + code.toString(16) + “]”;
} else {
newText += text.charAt(i);
}
}
return newText;
}
常见正则表达式
邮箱验证:
^[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?$
javascript 更改元素属性
document.getElementsByName(“HTMLCheckBoxList_0_0”).forEach(e=>{e.disabled = true; });
document.getElementById(“HTMLSelect_6_FixCOM”).disabled=true
使用JavaScript为react的页面的控件赋值
因为使用cefsharp做的自动登陆程序,涉及到一部分为控件的赋值,最近遇到一个使用react写的页面.没法直接用abc.value=’123’的方式直接赋值,经研究可以使用一下代码
var ev = new Event(‘input’, { bubbles: true});
ev.simulated = true;
abc.value = ‘ 123‘;
abc.dispatchEvent(ev);
最新更新, 使用一下代码
https://raw.githubusercontent.com/nullQ/js/main/js_setvalue_input_via_react
使用cefsharp中调用JavaScript脚本的promise的实例
function c1(){setTimeout(“var sec=’header-account mobile-hide’;document.getElementsByClassName(sec)[0].firstChild.click()”, 1300 );}
function c2(){setTimeout(“var sec=’btn btn-primary’;document.getElementsByClassName(sec)[0].click()”, 1300 );}
function c3(){var list=document.getElementsByTagName(“input”);
for(var i=0;i<list.length && list[i];i++)
{
if(list[i].type==”email”)
{
list[i].value=’aaa’;
list[i].dispatchEvent(new Event(‘input’))
}
else if(list[i].type==”password”)
{
list[i].value=’bbb’;
list[i].dispatchEvent(new Event(‘input’))
}
}
var bts=’btn btn-primary’;bt=document.getElementsByClassName(bts)[0];bt.click();}
function c4(){setTimeout(“window.location.href=\”https://visaya.solutions/de/\”;”,1000)}
new Promise(resolve => {
setTimeout(() => {
c1();
resolve(1);
}, 1500);
}).then((val) => {new Promise(resolve => {
setTimeout(() => {
c2();
resolve(2);
}, 1500);
}).then(val => {
setTimeout(() => {
c3();
}, 1500);
}).then(val => {
setTimeout(() => {
c4();
}, 1000);
});});
在CentOS 8系统中安装Apache服务器的方法
Apache HTTP服务器是世界上使用最广泛的Web服务器,它是一个免费的、开源的、跨平台的HTTP服务器,具有强大的功能,并且可以通过多种模块进行扩展。
安装Apache的方法
Apache在默认的CentOS 8存储库中可用,所以安装非常简单。
在基于RHEL的发行版中,Apache软件包和服务称为httpd,要安装Apache,请以root或具有sudo特权的用户身份运行以下命令:
$ sudo yum install httpd
安装完成后,启用并启动Apache服务:
$ sudo systemctl enable httpd
$ sudo systemctl start httpd
要验证服务是否正在运行,请检查其状态,运行:
$ sudo systemctl status httpd
调整防火墙
FirewallD是Centos 8上的默认防火墙解决方案。
在安装过程中,Apache使用预定义的规则创建防火墙服务文件,以允许访问HTTP(80)和HTTPS(443)端口。
以下命令将永久打开必要的端口:
$ sudo firewall-cmd –permanent –zone=public –add-service=http
$ sudo firewall-cmd –permanent –zone=public –add-service=https
$ sudo firewall-cmd –reload
JQuery如何获取ID含有特殊字符的DOM元素
因为业务需要,DOM元素的ID被命名为“INDEX: 2016.09.11”,执行JQuery的DOM查询时,提示如下错误
Uncaught Error: Syntax error, unrecognized expression: [id=INDEX: 2016.09.11]
- 解决办法:document.getElementById
以前总觉得这个办法笨拙,现在越觉得此方法强大,几乎就是大杀器,没有查询不了的元素,无论你的元素ID命名多么刁钻。
var rowId = ‘INDEX: 2016.09.11’,
view = document.getElementById(rowId),
// 将Element对象转换为JQuery对象
$view = $(view);
// 毫无疑问,结果返回1
alert($view.length)
2解决方法:属性选择器
利用id属性选择器也可以解决此类问题,只不过略微需要添加点技巧,如下:
var rowId = ‘INDEX: 2016.09.11’;
// 依旧提示unrecognized expression表达式错误
alert($(‘[id=’ + rowId + ‘]’).length)
// 将所有的id值用双引号包起来,即可进行识别
// 请注意双引号添加的位置,只在id上进行包裹
alert($(‘[id=”‘ + rowId + ‘”]’).length)
前端树 Frontend Knowledge Structure
<
article class=”markdown-body entry-content” itemprop=”text”>
Frontend Knowledge Structure
项目起源
还记得@jayli 的这幅前端知识结构图么。
图片的形式具有诸多的不便。缺失源图的我们,无法为此图贡献些什么,随着时间的迁移,或许有些技术点会发生改变,所以有了这个GitHub项目。我们可以通过协作的方式来共同维护这个项目。Git的历史记录也可以见证前端行业的一些变迁。
前端开发知识结构
-
前端工程师
- 浏览器
- 编程语言
- 切页面
- 开发工具
- 编辑器和IDE
- 调试工具
- 版本管理
- 代码质量
- Coding style
- 单元测试
- 自动化测试
- 前端库/框架
- 前端标准/规范
- 性能
- SEO
- 编程知识储备
- 部署流程
- 代码组织
- 类库模块化
- 业务逻辑模块化
- 文件加载
- 模块化预处理器
- 安全
- CSRF/XSS
- CSP
- Same-origin policy
- ADsafe/Caja/Sandbox
- 移动Web
- 前沿技术社区/会议
- 计算机知识储备
- 软技能
- 知识管理/总结分享
- 沟通技巧/团队协作
- 需求管理/PM
- 交互设计/可用性/可访问性知识
- 可视化
- 后端工程师
前端书籍推荐
★越少越简单,越适合入门,★多的要么是难度比较高,要么是比较适合在后面看,比如讲性能之类的书.
CSS
JavaScript
- JavaScript & jQuery交互式Web前端开发★
- JavaScript DOM编程艺术 (第2版)★
- JavaScript高级程序设计(第3版)★★
- 锋利的jQuery★★
- 高性能JavaScript★★★
- JavaScript语言精粹★★★
- JavaScript权威指南★★★
- 编写可维护的JavaScript★★★
- JAVASCRIPT语言精髓与编程实践★★★
- Effective Javascript★★★
- Secrets of the JavaScript Ninja★★★
- JavaScript模式★★★
- JavaScript设计模式★★★★
- 基于MVC的JavaScript Web富应用开发★★★
性能实践
- 高性能网站建设指南★
- 高性能网站建设进阶指南★★
- Web性能实践日志★★★
- Web性能权威指南★★★
版本控制工具
- 版本控制之道 (git)★★
- Pro Git★★★
- Git权威指南★★★★
后端书籍推荐
Linux管理
- Linux 系统管理技术手册
- 鸟哥的 Linux 私房菜
- Linux 101 Hacks
- UNIX Shell Scripting
- The Linux Command Line
- Linux Network Administrator’s Guide
Linux编程
- Linux程序设计
- Linux系统编程
- Unix环境高级编程
- Unix编程艺术
- The Linux Programming Interface
- 程序员的自我修养
- 深入理解Linux内核
- Unix网络编程
- TCP/IP高级编程
C/C++
- Linux C编程一站式学习
- C和指针
- C陷阱与缺陷
- C专家编程
- C语言核心技术
- 彻底搞定C指针
- 征服C指针
- C++编程思想
- 高质量程序设计指南—C/C++语言
- Inside the C++ Object Model
- A Tour of C++
- The C++ Programming Language
- The C++ Standard Library – A Tutorial and Reference
- The C++ Standard (INCITS/ISO/IEC 14882-2011)
- Overview of the New C++
