Qin

技术改变生活


  • Portfolio

  • Post

  • About

  • Contact

  • 中文

Windows 定时休眠 睡眠 批处理命令

Posted on 2019-01-01 | In Tools

Github下载地址

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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
@echo off
cd /d %~dp0
set ZT=[睡眠/休眠]
set ZT0=[关机]
set ZX=OVER1
set ZX0=OVER2
set P=[运行中]
:begin
cls
title 执行%ZT%的设定
<!-- more -->
set /a TH0=%time:~0,2%
if %TH0% LSS 10 (
set TH0=10%TH0%) else (
set /a TH0=1%TH0%
)
set /a TM0=1%time:~3,2%
set /a TH2=%TH0%
set /a TM2=%TM0%+30
if %TM2% GEQ 160 set /a TH2=%TH2%+1&set /a TM2=%TM2%-60
if %TH2% GEQ 124 set /a TH2=%TH2%-24
set /a TH3=%TH0%+1
set /a TM3=%TM0%
if %TM3% GEQ 160 set /a TH3=%TH3%+1&set /a TM3=%TM3%-60
if %TH3% GEQ 124 set /a TH3=%TH3%-24
set /a TH4=%TH0%+1
set /a TM4=%TM0%+30
if %TM4% GEQ 160 set /a TH4=%TH4%+1&set /a TM4=%TM4%-60
if %TH4% GEQ 124 set /a TH4=%TH4%-24
set /a TH5=%TH0%+2
set /a TM5=%TM0%
if %TM5% GEQ 160 set /a TH5=%TH5%+1&set /a TM5=%TM5%-60
if %TH5% GEQ 124 set /a TH5=%TH5%-24
set /a TH6=%TH0%+2
set /a TM6=%TM0%+30
if %TM6% GEQ 160 set /a TH6=%TH6%+1&set /a TM6=%TM6%-60
if %TH6% GEQ 124 set /a TH6=%TH6%-24
set /a TH7=%TH0%+3
set /a TM7=%TM0%
if %TM7% GEQ 160 set /a TH7=%TH7%+1&set /a TM7=%TM7%-60
if %TH7% GEQ 124 set /a TH7=%TH7%-24
set /a TH8=%TH0%+3
set /a TM8=%TM0%+30
if %TM8% GEQ 160 set /a TH8=%TH8%+1&set /a TM8=%TM8%-60
if %TH8% GEQ 124 set /a TH8=%TH8%-24

echo 请选择计划进入%ZT%:
echo [1]=0:30后预计于[%TH2:~1%:%TM2:~1%]执行
echo [2]=1:00后预计于[%TH3:~1%:%TM3:~1%]执行
echo [3]=1:30后预计于[%TH4:~1%:%TM4:~1%]执行
echo [4]=2:00后预计于[%TH5:~1%:%TM5:~1%]执行
echo [5]=2:30后预计于[%TH6:~1%:%TM6:~1%]执行
echo [6]=3:00后预计于[%TH7:~1%:%TM7:~1%]执行
echo [7]=3:30后预计于[%TH8:~1%:%TM8:~1%]执行
echo [8]=自定义时间
echo ---------------------------------
echo [9]=进入%ZT0%计划
echo [0]=调换进入[睡眠]或[休眠]
echo ---------------------------------
echo 注:预计时间以[%TH0:~1,2%:%TM0:~1,2%]开始计算
set choice=输入
set /p choice=
if %choice%==1 set /a H=100 & set /a M=130&goto run
if %choice%==2 set /a H=101 & set /a M=100&goto run
if %choice%==3 set /a H=101 & set /a M=130&goto run
if %choice%==4 set /a H=102 & set /a M=100&goto run
if %choice%==5 set /a H=102 & set /a M=130&goto run
if %choice%==6 set /a H=103 & set /a M=100&goto run
if %choice%==7 set /a H=103 & set /a M=130&goto run
if %choice%==8 goto setmode
if %choice%==9 set ZT0=%ZT%&set ZT=%ZT0%&set ZX0=%ZX%&set ZX=%ZX0%&goto begin
if %choice%==0 goto SW
set choice0=1234567890
echo %choice%|findstr "[^^%choice0%]">nul&&(echo 没有%choice%选项!&choice /t 1 /d y /n >nul&goto begin)
echo %choice%|findstr "^0">nul 2>nul&&(echo 没有%choice%选项!&&choice /t 1 /d y /n >nul&goto begin)
if %choice% GTR 9 echo 没有%choice%选项!&choice /t 1 /d y /n >nul&goto begin

:SW
cls
echo 请选择:
echo ---------------------------------------------------------------
echo [1]=改为[睡眠](内存不断电启动快但主板需要供电维持)
echo [2]=改为[休眠](内存转储硬盘启动慢但不需要供电维持)
echo [3]=提升管理员权限(或退出后在程序上右键选"以管理员身份运行")
echo [0]=返回主菜单
echo ---------------------------------------------------------------
echo 注:此处的更改需要管理员权限才能生效且所做选择会被系统保存,之后选择[睡眠/休眠]计划会相应的进入睡眠或休眠
echo 系统默认设定为休眠,改为睡眠时win10系统在电源管理中"关机设置"里的快速启动功能不会显示不会起效,改为休眠时恢复显示和功能(引用系统自带功能请放心)
set choice=输入
set /p choice=
if %choice%==1 goto SWOFF
if %choice%==2 goto SWON
if %choice%==3 goto GETAD
if %choice%==0 goto begin
set choice0=1230
echo %choice%|findstr "[^^%choice0%]">nul&&(echo 没有%choice%选项!&choice /t 1 /d y /n >nul&goto SW)
echo %choice%|findstr "^0">nul 2>nul&&(echo 没有%choice%选项!&&choice /t 1 /d y /n >nul&goto SW)
if %choice% GTR 9 echo 没有%choice%选项!&choice /t 1 /d y /n >nul&goto SW

:SWOFF
cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nul
if %errorlevel%==0 powercfg -h off&echo 修改完成&pause&goto SW
echo 设定此项需要先提升管理员权限(或退出后在程序上右键选"以管理员身份运行")
pause
goto SW

:SWON
cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nul
if %errorlevel%==0 powercfg -h on&echo 修改完成&pause&goto SW
echo 设定此项需要先提升管理员权限(或退出后在程序上右键选"以管理员身份运行")
pause
goto SW

:GETAD
cd /d %~dp0
cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nul
if %errorlevel%==0 goto Admin
if exist "缓存可删除.vbs" del /f /q "缓存可删除.vbs"
echo Set RequestUAC = CreateObject^("Shell.Application"^)>"缓存可删除.vbs"
echo RequestUAC.ShellExecute "%~s0","","","runas",1 >>"缓存可删除.vbs"
echo WScript.Quit >>"缓存可删除.vbs"
"缓存可删除.vbs" /f
if exist "缓存可删除.vbs" del /f /q "缓存可删除.vbs"
exit
:Admin
echo 已经是管理员身份!
pause
goto SW

:setmode
cls
echo [1]=以倒计时%ZT%
echo [2]=以点时间%ZT%
echo [0]=返回主菜单
set /p choice=
if %choice%==1 goto settime1
if %choice%==2 goto settime3
if %choice%==0 goto begin
set choice0=120
echo %choice%|findstr "[^^%choice0%]">nul&&(echo 没有%choice%选项!&choice /t 1 /d y /n >nul&goto setmode)
echo %choice%|findstr "^0">nul 2>nul&&(echo 没有%choice%选项!&&choice /t 1 /d y /n >nul&goto setmode)
if %choice% GTR 9 echo 没有%choice%选项!&choice /t 1 /d y /n >nul&goto setmode

:settime1
cls
set /a min=0
set H=输入
echo 以倒计时%ZT%:
echo (__:__)请输入倒计时的小时数(0-23)
echo [X]或[x]=返回上一级
set /p H=
if %H%==X goto setmode
if %H%==x goto setmode
set choice0=1234567890
echo %H%|findstr "[^^%choice0%]">nul&&(echo 请输入正确的正整数值&choice /t 1 /d y /n >nul&goto settime1)
if %H%==0 set /a min=1&goto contH
echo %H%|findstr "^0">nul 2>nul&&(echo 不需要输入"0"作为开头占位&&choice /t 1 /d y /n >nul&goto settime1)
:contH
if %H% GEQ 24 echo 请输入提示范围以内的计时时间&choice /t 1 /d y /n >nul&goto settime1
if %H% LSS 10 (
set /a H=10%H%) else (
set /a H=1%H%
)
:settime2
cls
set M=输入
echo 以倒计时%ZT%:
echo (%H:~1%:__)请输入倒计时的分钟数(%min%-59)
echo [X]或[x]=返回上一级
set /p M=
if %M%==X goto setmode
if %M%==x goto setmode
set choice0=1234567890
echo %M%|findstr "[^^%choice0%]">nul&&(echo 请输入正确的正整数值&choice /t 1 /d y /n >nul&goto settime2)
if %M%==0 goto Z
echo %M%|findstr "^0">nul 2>nul&&(echo 不需要输入"0"作为开头占位&&choice /t 1 /d y /n >nul&goto settime2)
:contM
set /a M=%M%
if %M% GEQ 60 echo 请输入提示范围以内的计时时间&choice /t 1 /d y /n >nul&goto settime2
if %M% LSS 10 (
set /a M=10%M%) else (
set /a M=1%M%
)
goto run
:Z
if %H%==100 (
echo 请输入提示范围以内的计时时间&choice /t 1 /d y /n >nul&goto settime2) else (
goto contM
)

:settime3
cls
set /a min=0
set TH=输入
echo 以点时间%ZT%:
echo (__:__)请输入执行时的小时数(0-23)
echo [X]或[x]=返回上一级
set /p TH=
if %TH%==X goto setmode
if %TH%==x goto setmode
set choice0=1234567890
echo %TH%|findstr "[^^%choice0%]">nul&&(echo 请输入正确的正整数值&choice /t 1 /d y /n >nul&goto settime3)
if %TH%==0 goto contTH
echo %TH%|findstr "^0">nul 2>nul&&(echo 不需要输入"0"作为开头占位&&choice /t 1 /d y /n >nul&goto settime3)
:contTH
if %TH% GEQ 24 echo 请输入提示范围以内的计时时间&choice /t 1 /d y /n >nul&goto settime3
if %TH% LSS 10 (
set /a TH=10%TH%) else (
set /a TH=1%TH%
)
:settime4
cls
set TM=输入
echo 以点时间%ZT%:
echo (%TH:~1%:__)请输入执行时的分钟数(0-59)
echo [X]或[x]=返回上一级
set /p TM=
if %TM%==X goto setmode
if %TM%==x goto setmode
set choice0=1234567890
echo %TM%|findstr "[^^%choice0%]">nul&&(echo 请输入正确的正整数值&choice /t 1 /d y /n >nul&goto settime4)
if %TM%==0 goto contTM
echo %TM%|findstr "^0">nul 2>nul&&(echo 不需要输入"0"作为开头占位&&choice /t 1 /d y /n >nul&goto settime4)
:contTM
set /a TM=%TM%
if %TM% GEQ 60 echo 请输入提示范围以内的计时时间&choice /t 1 /d y /n >nul&goto settime4
if %TM% LSS 10 (
set /a TM=10%TM%) else (
set /a TM=1%TM%
)
goto run2

:run
cls
set /a TH0=%time:~0,2%
if %TH0% LSS 10 (
set TH0=10%TH0%) else (
set /a TH0=1%TH0%
)
set /a TM0=1%time:~3,2%
set /a TS=%time:~6,1%
set /a TH=%TH0%+%H%-100
set /a TM=%TM0%+%M%-100
if %TM% GEQ 160 set /a TH=%TH%+1&set /a TM=%TM%-60
if %TH% GEQ 124 set /a TH=%TH%-24
goto FN1

:run2
cls
set /a TH0=%time:~0,2%
if %TH0% LSS 10 (
set /a TH0=10%TH0%) else (
set /a TH0=1%TH0%
)
set /a TM0=1%time:~3,2%
set /a TS=%time:~6,1%
if %TH% GEQ %TH0% (
set /a H=%TH%-%TH0%) else (
set /a H=%TH%+24-%TH0%
)
if %H% LSS 10 (
set /a H=10%H%) else (
set /a H=1%H%
)
if %TM% GEQ %TM0% (
set /a M=%TM%-%TM0%) else (
set /a M=%TM%+60-%TM0%&set /a H=%H%-1
)
if %H%==99 set /a H=123
if %M% LSS 10 (
set /a M=10%M%) else (
set /a M=1%M%
)
if %TH%==%TH0% (
goto CK1) else (
goto FN1
)
:CK1
if %TM%==%TM0% (
goto sp1) else (
goto FN1
)
:sp1
echo 注意!你设定了和当前相同的时间!将退回分钟设定部分
choice /t 2 /d y /n >nul
goto settime4


:FN1
cls
echo 操作内容:%ZT%
echo 创建时间:[%time:~0,8%]
echo 计时长度:[%H:~1%:%M:~1%:00]
echo 执行时间:[%TH:~1%:%TM:~1%:%TS%4]±4s
echo 需要取消请直接关闭窗口
echo -----------------------------------------------------
echo (窗口标题间隔闪烁"[运行中]"以及操作项时表示运行正常)
echo -----------------------------------------------------

:RE
set P=%ZT%&set ZT=%P%
set /a TM1=1%time:~3,2%
title [%H:~1%:%M:~1%]%P%
choice /t 8 /d y /n >nul
set /a TH0=%time:~0,2%
if %TH0% LSS 10 (
set TH0=10%TH0%) else (
set /a TH0=1%TH0%
)
set /a TM0=1%time:~3,2%
set /a TS0=%time:~6,1%
if %TS0%==%TS% goto A
goto reM
:A
if %TM0%==%TM% goto B
goto reM
:B
if %TH0%==%TH% goto %ZX%

:reM
if %M%==100 goto reH
if %TM0%==%TM1% goto RE
set /a M=%M%-1
goto RE

:reH
if %H%==100 goto RE
set /a H=%H%-1&set /a M=159
goto RE


:OVER1
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
exit
echo 一下内容为测试项为了不真正关机或休眠
echo 已经休眠,任意键退出
echo 预计执行时间:[%TH:~1%:%TM:~1%:%TS%4](±4s)
echo 实际执行时间:[%time:~0,8%]
pause
exit


:OVER2
shutdown -s -t 1
exit
echo 一下内容为测试项为了不真正关机或休眠
echo 已经关机,任意键退出
echo 预计执行时间:[%TH:~1%:%TM:~1%:%TS%4](±4s)
echo 实际执行时间:[%time:~0,8%]
pause
exit


%备注可删除↓%

+100
TH0最新时间缓存
TM0
TH执行时间
TM
H
M
TM1最新时间 有时间差缓存

%备注可删除↑%

ecshop 重置后台密码 MD5+salt

Posted on 2018-11-24 | In Develop

ecshop密码加密方式:

    MD5 32位+salt,简单来说就是明文密码用MD5加密一次,然后在得到的MD5字符后边加上salt字段值(salt值为系统随机生成,生成以后不再改变)再进行一次MD5加密,得到的结果插入password字段。

所以如果忘记后台密码需要重置的话要进行以下操作:

以把密码重置成admin123为例

    一、用MD5加密工具对“admin123”进行32位加密得到“0192023a7bbd73250516f069df18b500”;

    二、用phpmyadmin打开数据库ecs_admin_user表,查看后台用户salt字段的值例如“3996”;

    三、对字符串“0192023a7bbd73250516f069df18b5003996”再次进行MD532位加密得到“ff7c0d9076ca4dcc6a88e6141a18a2d6”;

    四、将第三步得到的字符串填写到ecs_admin_user表后台用户的passowrd字段,然后执行。

经过以上四步,后台密码就重置成admin123了。

沉浸栏效果-ApiCloud

Posted on 2018-07-24 | In Develop

首先在config.xml文件内配置

1
2
<preference name="iOS7StatusBarAppearance" value="true" />
<preference name="statusBarAppearance" value="true"/>
1
2
3
4
5
6
7
8
9
var header = document.querySelector('#header');
$api.fixStatusBar(header);
if (api.systemType == 'ios') {
$api.fixIos7Bar(header);
}
$api.fixStatusBar(header);
api.setStatusBarStyle({
style: 'light'
});
  • 描述:适配iOS7+、Android4.4+系统状态栏,为传入的DOM元素增加适当的上内边距,避免header与状态栏重叠
  • 用法:.fixStatusBar(el)
  • 参数:el (类型:Element) : DOM元素
  • 备注:自动识别iOS7+,避免应用与状态栏重叠,无法跟config.xml里面的 一起使用。

支付宝转账跳转

Posted on 2018-05-24 | In Develop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var data = {
"s": "money",
"u": "2088901290426975",
"a": "0.04",
"m": "HM07L520550221254"
};

var url = 'alipays://platformapi/startapp?appId=20000123&actionType=scan&biz_data='+data;
/**

个人的是 userId
2088102639602434

企业的 是合作IP
2088102639602434

**/

nginx反向代理 映射 node.js项目 php node共存

Posted on 2018-05-24 | In Develop

在vhost/nginx/中 配置api.xxx.com.conf文件

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
server
{
listen 80;
server_name api.ihogo.net;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/api;

# 这里设置映射
location /mininote
{
# 代理地址 加/ 等于直接访问http://localhost:3000
# 不加/ 等于访问http://localhost:3000/mininote
proxy_pass http://localhost:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#SSL-END

#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
error_page 404 /404.html;
error_page 502 /502.html;
#ERROR-PAGE-END

#PHP-INFO-START PHP引用配置,可以注释或修改
include enable-php-54.conf;
#PHP-INFO-END

#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/api.ihogo.net.conf;
#REWRITE-END

#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}

#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
access_log off;
}

location ~ .*\.(js|css)?$
{
expires 12h;
access_log off;
}

access_log /www/wwwlogs/api.ihogo.net.log;
error_log /www/wwwlogs/api.ihogo.net.error.log;
}

PHP 获取小程序openID

Posted on 2018-04-24 | In Develop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        $appid = '';
$secret = $this->app;
$code = $_REQUEST["code"];
$url = 'https://api.weixin.qq.com/sns/jscode2session?appid=' . $appid . '&secret=' . $secret . '&js_code=' . $code . '&grant_type=authorization_code';

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
// 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_URL, $url);

$res = curl_exec($curl);
curl_close($curl);

$json_obj = json_decode($res, true);
$openid = $json_obj["openid"];
$data['openid'] = $openid;
return json_encode($data);

利用ajax实现管理后台系统单页(SPA)框架 无刷新页面内容切换 管理后台切换页面

Posted on 2017-06-25 | In Develop

Github地址

index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width,height=device-height,user-scalable=no">
<script src='https://code.jquery.com/jquery-3.3.1.min.js'></script>
</head>
<body>
<!--left Menu-->
<ul class="sidebar-menu">
<li data-pagecode="workSummary" class="menu active">
<span>菜单 ONE</span>
</li>
<li data-pagecode="workPlan" class='menu'>
<span>菜单 Two</span>
</li>
</ul>

<!--right content-->
<div class="content-wrapper"> </div>
</body>
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
<script type="text/javascript">
// 获取其他html页面内容
var code = $(".sidebar-menu .active").attr("data-pagecode");
$.ajax({
url: code + ".html",
type:"get",
data:{
code:code
},
dataType:"html",
success:function(data){
$(".content-wrapper").html(data)
}
});

// 点按菜单切换导航
$(".sidebar-menu .menu").click(function(){
// 菜单效果
if($(this).hasClass("active")==false){
$(this).addClass("active").siblings().removeClass("active");

// 切换页面内容
var code = $(this).attr("data-pagecode");
if(code){
$.ajax({
url:code + ".html",
type:"get",
dataType:"html",
success:function(data){
$(".content-wrapper").html(data);
}
})
}
}
});
</script>
</html>
workPlan.html
1
<h2>1 工作计划 1</h2>
workSummary.html
1
<h2>2 工作计划 2</h2>

H5 video标签 controlslist 下载按钮,全屏按钮显示与隐藏

Posted on 2017-06-24 | In Develop

controlslist=”nodownload” 去掉下载按钮
controlslist=”nofullscreen“ 去掉全屏按钮,只显示播放进度

JS获取页面URL信息和请求参数

Posted on 2017-04-24 | In Develop
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
下面我们举例一个URL,然后获得它的各个组成部分:http://i.cnblogs.com/EditPosts.aspx?opt=1
1、window.location.href (设置或获取整个 URL 为字符串)
var test = window.location.href;
alert(test);
// 返回:http://i.cnblogs.com/EditPosts.aspx?opt=1

2、window.location.protocol (设置或获取 URL 的协议部分)
var test = window.location.protocol;
alert(test);
//返回:http:

3、window.location.host (设置或获取 URL 的主机部分)
var test = window.location.host;
alert(test);
//返回:i.cnblogs.com

4、window.location.port (设置或获取与 URL 关联的端口号码)
var test = window.location.port;
alert(test);
//返回:空字符(如果采用默认的80端口 (update:即使添加了:80),那么返回值并不是默认的80而是空字符)

5、window.location.pathname (设置或获取与 URL 的路径部分(就是文件地址))
var test = window.location.pathname;
alert(test);
//返回:/EditPosts.aspx

6、window.location.search (设置或获取 href 属性中跟在问号后面的部分)
var test = window.location.search;
alert(test);
//返回:?opt=1
(PS:获得查询(参数)部分,除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值。)

7、window.location.hash (设置或获取 href 属性中在井号“#”后面的分段)
var test = window.location.hash;
alert(test);
//返回:空字符(因为url中没有)

8、js获取url中的参数值*
一、正则法
function getQueryString(name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);

if (r != null) {
return unescape(r[2]);
}
return null;
}
// 这样调用:
alert(GetQueryString("参数名1"));

alert(GetQueryString("参数名2"));

alert(GetQueryString("参数名3"));

二、split拆分法
function GetRequest() {
var url = location.search; //获取url中"?"符后的字串
var theRequest = new Object();

if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for(var i = 0; i < strs.length; i ++) {
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
}
}
return theRequest;
}
var Request = new Object();
Request = GetRequest();
// var id=Request["id"];
// var 参数1,参数2,参数3,参数N;
// 参数1 = Request['参数1'];
// 参数2 = Request['参数2'];
// 参数3 = Request['参数3'];
// 参数N = Request['参数N'];

三、指定取
比如说一个url:http://i.cnblogs.com/?j=js, 我们想得到参数j的值,可以通过以下函数调用。
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
var context = "";

if (r != null)
context = r[2];
reg = null;
r = null;
return context == null || context == "" || context == "undefined" ? "" : context;
}
alert(GetQueryString("j"));

四、单个参数的获取方法
function GetRequest() {
var url = location.search; //获取url中"?"符后的字串
if (url.indexOf("?") != -1) {? //判断是否有参数
var str = url.substr(1); //从第一个字符开始 因为第0个是?号 获取所有除问号的所有符串
strs = str.split("=");? //用等号进行分隔 (因为知道只有一个参数
//所以直接用等号进分隔 如果有多个参数 要用&号分隔 再用等号进行分隔)
alert(strs[1]);???? //直接弹出第一个参数 (如果有多个参数 还要进行循环的)
}
}

Vue 数组拷贝 数组复制

Posted on 2017-03-24 | In Develop
1
2
3
var obj={};  
obj=JSON.parse(JSON.stringify(this.templateData)); //this.templateData是父组件传递的对象
return obj
1234
Qin

Qin

32 posts
3 categories
7 tags
RSS
Links Pay 简历 E-Mail
© 2019 Qin
UV PV
   (●'◡'●)ノ♥
鲁ICP备19045829号
0%