Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
果在前幾天推送了ios7.1.2的更新,盤古越獄團(tuán)隊(duì)在第一時(shí)間發(fā)布微博證實(shí)盤古越獄工具支持ios7.1.2,蘋果此次并沒有修補(bǔ)越獄漏洞。這樣,就有更多的iPhone用戶加入了越獄的行列,而越獄的其中一大用處就是美化自己的系統(tǒng)界面,今天就帶給大家?guī)卓詈芑鸬脑姜z美化插件推薦。
本文因?yàn)槠颍煌扑]插件,插件的具體使用方法,可以自行百度。
一、winterboard
winterboard作為越獄后排行第一的越獄美化插件,也是iPhone越獄主題美化的必備插件。所有的主題都要借助于winterboard來實(shí)現(xiàn)安裝。
二、zeppelin
zeppelin是一款更換運(yùn)營商標(biāo)識的美化插件,可以將中國移動/聯(lián)通字樣換成圖標(biāo)或者自己喜歡的字。
三、barrel
barrel是一款動態(tài)翻頁插件,一共有18種翻頁方式,并且在不斷更新。
四、Springtomiz3
Springtomiz3是越獄美化控不可錯過的精品,它可以實(shí)現(xiàn)動畫效果、系統(tǒng)功能、Dock、鎖屏、圖標(biāo)、文件夾、狀態(tài)欄、多任務(wù)管理器、通知中心等項(xiàng)目的定義設(shè)置,功能十分齊全和強(qiáng)大。
五、LockHTML3
LockHTML3是一款鎖屏界面的美化插件,可以更換鎖屏主題,隱藏鎖屏界面的所有元素。
六、更多美化插件等待后續(xù)更新。
我們先從瀏覽器按鍵時(shí)間說起,
用JavaScript實(shí)現(xiàn)鍵盤記錄,要關(guān)注瀏覽器的三種按鍵事件類型,
它們分別對應(yīng)onkeydown、 onkeypress和onkeyup這三個事件句柄。一個典型的按鍵會產(chǎn)生所有這三種事件,依次是keydown,keypress,然后是按鍵釋放時(shí)候的keyup。
KeyDown:在控件有焦點(diǎn)的情況下按下鍵時(shí)發(fā)生。
KeyPress:在控件有焦點(diǎn)的情況下按下鍵時(shí)發(fā)生。
KeyUp:在控件有焦點(diǎn)的情況下釋放鍵時(shí)發(fā)生。
在這3種事件類型中,keydown和keyup比較底層,而keypress比較高級。這里所謂的高級是指,當(dāng)用戶按下shift + 1時(shí),keypress是對這個按鍵事件進(jìn)行解析后返回一個可打印的“!”字符,而keydown和keyup只是記錄了shift + 1這個事件。
但是keypress只能針對一些可以打印出來的字符有效,而對于功能按鍵,如F1-F12、Backspace、Enter、Escape、 PageUP、PageDown和箭頭方向等,就不會產(chǎn)生keypress事件,但是可以產(chǎn)生keydown和keyup事件。然而在FireFox中,功能按鍵是可以產(chǎn)生keypress事件的。
傳遞給keydown、keypress和keyup事件句柄的事件對象有一些通用的屬性。如果Alt、Ctrl或Shift和一個按鍵一起按下,這通過事件的altKey、ctrlKey和shiftKey屬性表示,這些屬性在FireFox和IE中是通用的。
注意:
KeyDown觸發(fā)后,不一定觸發(fā)KeyUp,當(dāng)KeyDown 按下后,拖動鼠標(biāo),那么將不會觸發(fā)KeyUp事件。
KeyPress主要用來捕獲數(shù)字(注意:包括Shift+數(shù)字的符號)、字母(注意:包括大小寫)、小鍵盤等 除了 F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜單鍵}、{開始鍵}和方向鍵 外的ANSI字符
KeyPress 只能捕獲單個字符,可以捕獲單個字符的大小寫,不區(qū)分小鍵盤和主鍵盤的數(shù)字字符。
KeyDown 和KeyUp 通常可以捕獲鍵盤除了PrScrn(截屏)所有按鍵
KeyDown 和KeyUp 可以捕獲組合鍵,對于單個字符捕獲的KeyValue 都是一個值,也就是不能判斷單個字符的大小寫,區(qū)分小鍵盤和主鍵盤的數(shù)字字符。
其中PrScrn 按鍵KeyPress、KeyDown和KeyUp 都不能捕獲。
keydown、keypress 按著不動會持續(xù)執(zhí)行事件,keyup執(zhí)行一次
在使用鍵盤的時(shí)候,通常會使用到CTRL+SHIFT+ALT 類似的組合鍵功能,通過KeyUp 事件能夠來處理(這里說明一下為什么不用KeyDown,因?yàn)樵谂卸↘eyDown的時(shí)候,CTRL、SHIFT和ALT 屬于一直按下狀態(tài),然后再加另外一個鍵是不能準(zhǔn)確捕獲組合鍵,所以使用KeyDown 是不能準(zhǔn)確判斷出的,要通過KeyUp 事件來判定 )
前端架構(gòu)暴力拆解,源碼解析,多年經(jīng)驗(yàn)分享,請持續(xù)關(guān)注!
家好,很高興又見面了,我是"高級前端?進(jìn)階?",由我?guī)е蠹乙黄痍P(guān)注前端前沿、深入前端底層技術(shù),大家一起進(jìn)步,也歡迎大家關(guān)注、點(diǎn)贊、收藏、轉(zhuǎn)發(fā),您的支持是我不斷創(chuàng)作的動力。
Chrono 是 Javascript 中的自然語言日期解析器,它旨在處理大多數(shù)日期/時(shí)間格式并從任何給定文本中提取信息,內(nèi)容包括:
目前 Chrono 在 Github 上通過 MIT 協(xié)議開源,有超過 3.5k 的 star,值得嘗試。
首先需要通過 NPM 安裝:
npm install --save chrono-node
然后直接在代碼中引入即可:
import * as chrono from 'chrono-node';
chrono.parseDate('An appointment on Sep 12-13');
如果是 Node.js 環(huán)境,可以使用下面的代碼:
const chrono=require('chrono-node');
// or `import chrono from 'chrono-node'` for ECMAScript
對于 Chrono 庫來說,只需將字符串傳遞給函數(shù) chrono.parseDate 或 chrono.parse 即可。
import * as chrono from 'chrono-node';
chrono.parseDate('An appointment on Sep 12-13');
// Fri Sep 12 2014 12:00:00 GMT-0500 (CDT)
chrono.parse('An appointment on Sep 12-13');
/* [{
index: 18,
text: 'Sep 12-13',
start: ...
}] */
今天的“星期五”與上個月的“星期五”不同,引用日期的含義取決于它們被提及的時(shí)間和地點(diǎn)。 Chrono 允許開發(fā)者將引用定義為 Date 或 ParsingReference 對象:
// (Note: the exmaples run on JST timezone)
chrono.parseDate('Friday', new Date(2012, 8 - 1, 23));
// Fri Aug 24 2012 12:00:00 GMT+0900 (JST)
chrono.parseDate('Friday', new Date(2012, 8 - 1, 1));
// Fri Aug 03 2012 12:00:00 GMT+0900 (JST)
chrono.parseDate('Friday at 4pm', {
// Wed Jun 09 2021 21:00:00 GMT+0900 (JST)
//=Wed Jun 09 2021 07:00:00 GMT-0500 (CDT)
instant: new Date(1623240000000),
timezone: 'CDT',
});
// Sat Jun 12 2021 06:00:00 GMT+0900 (JST)
//=Fri Jun 11 2021 16:00:00 GMT-0500 (CDT)
forwardDate(布爾值)假設(shè)結(jié)果應(yīng)該在參考日期之后發(fā)生。
const referenceDate=new Date(2012, 7, 25);
// Sat Aug 25 2012 00:00:00 GMT+0900 -- The reference date was Saturday
chrono.parseDate('Friday', referenceDate);
// Fri Aug 24 2012 12:00:00 GMT+0900 (JST) -- The day before was Friday
chrono.parseDate('Friday', referenceDate, { forwardDate: true });
// Fri Aug 31 2012 12:00:00 GMT+0900 (JST) -- The following Friday
timezones 覆蓋或添加時(shí)區(qū)縮寫和偏移量之間的自定義映射。 當(dāng)希望 Chrono 將某些文本解析為給定的時(shí)區(qū)偏移量時(shí),請使用此選項(xiàng)。 Chrono 支持明確的(正常)時(shí)區(qū)映射和模糊映射,其中夏令時(shí)期間和之外的偏移量不同。
// Chrono doesn't understand XYZ, so no timezone is parsed
chrono.parse('at 10:00 XYZ', new Date(2023, 3, 20))
// "knownValues": {"hour": 10, "minute": 0}
// Make Chrono parse XYZ as offset GMT-0300 (180 minutes)
chrono.parse('at 10:00 XYZ', new Date(2023, 3, 20), { timezones: { XYZ: -180 } })
// "knownValues": {"hour": 10, "minute": 0, "timezoneOffset": -180}
// Make Chrono parse XYZ as offset GMT-0300 outside of DST, and GMT-0200 during DST. Assume DST is between
import { getLastDayOfMonthTransition } from "timezone";
import { Weekday, Month } from "parsing";
const parseXYZAsAmbiguousTz={
timezoneOffsetDuringDst: -120,
timezoneOffsetNonDst: -180,
dstStart: (year: number)=> getLastWeekdayOfMonth(year, Month.FEBRUARY, Weekday.SUNDAY, 2),
dstEnd: (year: number)=> getLastWeekdayOfMonth(year, Month.SEPTEMBER, Weekday.SUNDAY, 3)
};
// Parsing a date which falls within DST
chrono.parse('Jan 1st 2023 at 10:00 XYZ', new Date(2023, 3, 20), { timezones: { XYZ: parseXYZAsAmbiguousTz } })
// "knownValues": {"month": 1, ..., "timezoneOffset": -180}
// Parsing a non-DST date
chrono.parse('Jun 1st 2023 at 10:00 XYZ', new Date(2023, 3, 20), { timezones: { XYZ: parseXYZAsAmbiguousTz } })
// "knownValues": {"month": 6, ..., "timezoneOffset": -120}
https://github.com/wanasit/chrono
https://dexlock.com/blog/a-dive-into-nlp-date-parsers/
*請認(rèn)真填寫需求信息,我們會在24小時(shí)內(nèi)與您取得聯(lián)系。