自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Chrome 102:新增兩個 HTML 屬性、兩個 JS API !

系統(tǒng) 瀏覽器
Chrome 在上周發(fā)布了 102 版本,我們一起來看看都有哪些新東西把!

Chrome? 在上周發(fā)布了 102 版本,我們一起來看看都有哪些新東西吧!

圖片

inert 屬性

inert? 屬性是一個全局的 HTML 屬性,它可以告訴瀏覽器忽略元素的用戶輸入事件,包括焦點事件和來自輔助技術(shù)的其他事件。主要是下面兩種用例:

  • 元素是DOM 樹的一部分,但在屏幕外或隱藏;
  • 元素是DOM 樹的一部分,但應(yīng)該是非交互的。

這個屬性的在切圖的時候還是挺有用的。例如,我們想開發(fā)一個模態(tài)框,你希望在模態(tài)框可見時將焦點聚焦在模態(tài)框內(nèi)?;蛘撸瑢τ谟脩舨⒉豢偸强梢姷某閷?,添加 inert 可確保當抽屜不在屏幕上時,鍵盤用戶不會意外與其進行交互。

<div>
<label for="button1">ConardLi</label>
<button id="button1">I am not inert</button>
</div>
<div inert>
<label for="button2">codemmhy</label>
<button id="button2">I am inert</button>
</div>

我么在第二個 <div>? 上聲明了 inert? 屬性,因此其中包含的所有內(nèi)容,包括 <button> <label>,都無法獲得焦點或被單擊。

你可能覺得屬性用處不是特別大,不就是禁用了一些元素么?但是它實際上最大的用途還是在于網(wǎng)頁的可訪問性。比如一個有視力障礙的人來訪問我們的網(wǎng)站,雖然他看不到我們網(wǎng)頁上的內(nèi)容,但是他可能會用到一些輔助技術(shù)來進行感知。

在我們正常使用的情況下,我們可能通過一些 disable? 屬性或者其他的 CSS 樣式來隱藏掉網(wǎng)頁內(nèi)的某些內(nèi)容,或者讓它們不可交互,對于我們正常的用戶肯定是沒問題的。

但是對于上面提到的有視力障礙的人,他不是依靠視覺來感知網(wǎng)頁內(nèi)容,而是借助了一些其他的輔助技術(shù),這就有可能會和我們隱藏掉的內(nèi)容進行一些意外的交互。

inert 可以讓我們能夠從選項卡順序和可訪問性樹中直接刪除元素,這就會避免上面的問題!

inert? 在 Chrome 102? 中提供支持,并且在 Firefox? 和 Safari 中也都是可用的。

圖片

Navigation API

在很多 Web? 開發(fā)的場景下,我們需要在沒有網(wǎng)頁中的導(dǎo)航的情況下去更新頁面的 URL?,特別是在 SPA 應(yīng)用里面,我們在切換了導(dǎo)航之后,不希望刷新網(wǎng)頁,只更新頁面中的內(nèi)容。之前我們一般都是用 History API 去實現(xiàn)的。

navigation.addEventListener('navigate', (navigateEvent) => {
switch (navigateEvent.destination.url) {
case 'https://blog.conardli.top/':
navigateEvent.transitionWhile(loadIndexPage());
break;
case 'https://www.conardli.top/':
navigateEvent.transitionWhile(loadCatsPage());
break;
}
});

但是用過的都知道,這玩意實在是太難用了,而且還很笨重,也容易出現(xiàn)問題。Navigation API 提供了一種更友好的方式來幫助我們操作網(wǎng)頁的導(dǎo)航。

要使用 Navigation API?,我們需要在全局對象上添加一個 navigate 監(jiān)聽器。

navigation.addEventListener('navigate', (navigateEvent) => {
switch (navigateEvent.destination.url) {
case 'https://blog.conardli.top/':
navigateEvent.transitionWhile(loadIndexPage());
break;
case 'https://www.conardli.top/':
navigateEvent.transitionWhile(loadCatsPage());
break;
}
});

這個事件采用了集中處理的機制:它會被所有類型的導(dǎo)航觸發(fā),無論是用戶執(zhí)行了一個動作(例如點擊鏈接、提交表單或返回和前進)還是以代碼的方式觸發(fā)導(dǎo)航。在大多數(shù)情況下,它會讓你的代碼覆蓋瀏覽器對該操作的默認行為。對于 SPA,這可能意味著讓用戶保持在同一頁面上并加載或更改網(wǎng)站的內(nèi)容。

目前只有 Edge、Chrome 對它提供了支持。

圖片

File Handling API

File Handling API? 可以讓已安裝的 PWA? 向操作系統(tǒng)注冊文件處理程序。注冊后,用戶就可以單擊文件然后使用已安裝的 PWA? 打開它了。這非常適合與文件交互的 PWA? 程序,例如圖像編輯器、IDE、文本編輯器等。

想要讓你的 PWA? 支持文件處理功能,你需要更新一下 web app manifest?,添加一個 file_handlers? 數(shù)組,其中包含有關(guān)你的 PWA? 可以處理的文件類型的詳細信息。你需要指定要打開的 URL、MIME 類型、文件類型的圖標和啟動類型。啟動類型定義是否應(yīng)在單個客戶端或多個客戶端中打開多個文件。

"file_handlers": [
{
"action": "/open-csv",
"accept": {"text/csv": [".csv"]},
"icons": [
{
"src": "csv-icon.png",
"sizes": "256x256",
"type": "image/png"
}
],
"launch_type": "single-client"
}
]

然后,想要在 PWA? 啟動時訪問這些文件,你需要為 launchQueue 對象指定一個使用者。啟動被排隊,直到它們被消費者處理。

// Access from Window.launchQueue.
launchQueue.setConsumer((launchParams) => {
if (!launchParams.files.length) {
// Nothing to do when the queue is empty.
return;
}
for (const fileHandle of launchParams.files) {
// Handle the file.
openFile(fileHandle);
}
});

hidden=until-found

網(wǎng)頁里面可能會有很多被隱藏掉的內(nèi)容,如果一些折疊組件、tab? 標簽頁等等,如果你既要折疊網(wǎng)頁上的某些內(nèi)容,但是又希望我們在網(wǎng)頁上搜索時能搜索的到那么,就可以用到 hidden=until-found 屬性了。

// Access from Window.launchQueue.
launchQueue.setConsumer((launchParams) => {
if (!launchParams.files.length) {
// Nothing to do when the queue is empty.
return;
}
for (const fileHandle of launchParams.files) {
// Handle the file.
openFile(fileHandle);
}
});

更多更新可以查看:https://chromestatus.com/features#milestone%3D102

以上就是 Chrome 102? 在 Web 這方便的一些更新了,你覺得哪個最有用呢?

責(zé)任編輯:趙寧寧 來源: code秘密花園
相關(guān)推薦

2012-10-18 09:24:14

Office 365

2021-05-07 08:03:05

JS動態(tài)合并

2022-03-07 13:58:30

JavaScript原始數(shù)據(jù)前端

2020-11-13 07:16:09

線程互斥鎖死循環(huán)

2009-07-16 10:39:00

SwingUtilit

2010-09-10 15:26:05

SOAP封裝

2012-07-22 20:44:06

HTML5HTML5標準

2013-01-18 09:41:24

PaaS云存儲紅帽Linux

2017-03-13 17:28:23

瀏覽器SafariChrome

2009-07-15 18:29:22

Jython應(yīng)用

2021-08-03 08:13:47

數(shù)據(jù)

2017-01-15 01:45:37

簡歷簡歷模板數(shù)據(jù)

2010-07-02 12:26:51

LEACH協(xié)議

2010-09-17 09:51:37

SIP路由

2022-08-09 09:00:53

Chrome容器瀏覽器

2019-06-25 10:46:04

Flutter開發(fā)APP

2022-02-27 13:16:09

漏洞網(wǎng)絡(luò)安全

2021-10-01 12:15:59

谷歌Chrome漏洞

2010-08-19 11:22:19

marginpadding

2009-05-08 09:08:12

點贊
收藏

51CTO技術(shù)棧公眾號