Chrome 86 को अब स्टेबल वर्शन के तौर पर रोल आउट किया जा रहा है.
यहां आपके जानने योग्य तथ्य दिए गए हैं:
- File System Access API अब स्टेबल वर्शन में उपलब्ध है.
- Web HID और मल्टी-स्क्रीन विंडो प्लेसमेंट एपीआई के लिए, ऑरिजिन के नए ट्रायल उपलब्ध हैं.
- सीएसएस में कुछ नए फ़ंक्शन और और भी बहुत कुछ है.
नमस्ते, पीट लेपेज बोल रहा हूं. फ़िलहाल, मैं घर से काम और वीडियो रिकॉर्ड कर रहा हूं. आइए, Chrome 86 में डेवलपर के लिए क्या नया है, इस बारे में जानें!
फ़ाइल सिस्टम का ऐक्सेस
फ़िलहाल, डिस्क से फ़ाइल पढ़ने के लिए <input type="file">
एलिमेंट का इस्तेमाल किया जा सकता है.
बदलावों को सेव करने के लिए, किसी ऐंकर टैग में download
जोड़ें. इससे फ़ाइल पिकर दिखेगा और फ़ाइल सेव हो जाएगी. आपने जो फ़ाइल खोली है उसमें बदलाव नहीं किया जा सकता. यह वर्कफ़्लो परेशान करने वाला है.
File System Access API (पहले इसे नेटिव फ़ाइल सिस्टम एपीआई कहा जाता था) का इस्तेमाल करके, showOpenFilePicker()
को कॉल किया जा सकता है. यह एक फ़ाइल पिकर दिखाता है और फिर एक फ़ाइल हैंडल दिखाता है. इस हैंडल का इस्तेमाल करके, फ़ाइल को पढ़ा जा सकता है. यह एपीआई, अब स्टेबल वर्शन में उपलब्ध है.
async function getFileHandle() {
const opts = {
types: [
{
description: 'Text Files',
accept: {
'text/plain': ['.txt', '.text'],
'text/html': ['.html', '.htm']
}
}
]
};
return await window.showOpenFilePicker(opts);
}
किसी फ़ाइल को डिस्क पर सेव करने के लिए, आपके पास उस फ़ाइल हैंडल का इस्तेमाल करने का विकल्प है जो आपको पहले मिला था या नया फ़ाइल हैंडल पाने के लिए showSaveFilePicker()
को कॉल करने का विकल्प है.
async function saveFile(fileHandle) {
if (!fileHandle) {
fileHandle = await window.showSaveFilePicker();
}
const writable = await fileHandle.createWritable();
await writable.write(contents);
await writable.close();
}

लिखने से पहले, Chrome यह जांच करेगा कि उपयोगकर्ता ने लिखने की अनुमति दी है या नहीं. अगर अनुमति नहीं दी गई है, तो Chrome उपयोगकर्ता से अनुमति मांगेगा.
showDirectoryPicker()
को कॉल करने पर एक डायरेक्ट्री खुलेगी. इससे, आपको फ़ाइलों की सूची देखने या उस डायरेक्ट्री में नई फ़ाइलें बनाने की सुविधा मिलेगी. यह कई फ़ाइलों के साथ इंटरैक्ट करने वाले IDE या मीडिया प्लेयर के लिए बेहतरीन है. हालांकि, कुछ लिखने से पहले, उपयोगकर्ता को लिखने की अनुमति देनी होगी.
एपीआई के बारे में ज़्यादा जानने के लिए, web.dev पर फ़ाइल सिस्टम ऐक्सेस लेख देखें.
ऑरिजिन ट्रायल: WebHID

ह्यूमन इंटरफ़ेस डिवाइसों को आम तौर पर एचआईडी कहा जाता है. ये डिवाइस, लोगों से इनपुट लेते हैं या उन्हें आउटपुट देते हैं. ह्यूमन इंटरफ़ेस डिवाइसों की एक लंबी सूची है, जो सिस्टम के डिवाइस ड्राइवर के ज़रिए ऐक्सेस नहीं किए जा सकते. ये डिवाइस बहुत नए, बहुत पुराने या बहुत असामान्य होते हैं.
WebHID API, अब ऑरिजिन ट्रायल के तौर पर उपलब्ध है. यह JavaScript में इन डिवाइसों को ऐक्सेस करने का तरीका उपलब्ध कराकर, इस समस्या को हल करता है. WebHID की मदद से, वेब पर चलने वाले गेम, गेमपैड का पूरा फ़ायदा ले सकते हैं. इनमें सभी बटन, जॉयस्टिक, सेंसर, ट्रिगर, एलईडी, रंबल पैक वगैरह शामिल हैं.
butOpenHID.addEventListener('click', async (e) => {
const deviceFilter = { vendorId: 0x0fd9 };
const opts = { filters: [deviceFilter] };
const devices = await navigator.hid.requestDevice(opts);
myDevice = devices[0];
await myDevice.open();
myDevice.addEventListener('inputreport', handleInpRpt);
});
वेब पर काम करने वाले वीडियो चैट ऐप्लिकेशन, कॉल शुरू या खत्म करने, ऑडियो को म्यूट करने वगैरह के लिए, खास स्पीकर पर मौजूद टेलीफ़ोनी बटन का इस्तेमाल कर सकते हैं.

बेशक, इस तरह के बेहतरीन एपीआई, डिवाइसों के साथ सिर्फ़ तब इंटरैक्ट कर सकते हैं, जब उपयोगकर्ता साफ़ तौर पर उन्हें अनुमति देता है.
ज़्यादा जानकारी, उदाहरण, शुरू करने का तरीका, और शानदार डेमो के लिए, असामान्य एचआईडी डिवाइसों से कनेक्ट करना देखें.
ऑरिजिन ट्रायल: मल्टी-स्क्रीन विंडो प्लेसमेंट एपीआई
फ़िलहाल, window.screen()
को कॉल करके, उस स्क्रीन की प्रॉपर्टी देखी जा सकती है जिस पर ब्राउज़र विंडो खुली है. अगर आपके पास एक से ज़्यादा मॉनिटर का सेटअप है, तो क्या होगा? माफ़ करें, ब्राउज़र सिर्फ़ उस स्क्रीन के बारे में बताएगा जिस पर वह फ़िलहाल चालू है.
const screen = window.screen;
console.log(screen);
// {
// availHeight: 1612,
// availLeft: 0,
// availTop: 23,
// availWidth: 3008,
// colorDepth: 24,
// orientation: {...},
// pixelDepth: 24,
// width: 3008
// }
मल्टी-स्क्रीन विंडो प्लेसमेंट एपीआई, Chrome 86 में ऑरिजिन ट्रायल शुरू करता है. इसकी मदद से, अपनी मशीन से कनेक्ट की गई स्क्रीन की गिनती की जा सकती है और विंडो को खास स्क्रीन पर रखा जा सकता है. प्रज़ेंटेशन ऐप्लिकेशन, वित्तीय सेवाओं के ऐप्लिकेशन वगैरह के लिए, खास स्क्रीन पर विंडो डालना ज़रूरी है.
एपीआई का इस्तेमाल करने से पहले, आपको अनुमति का अनुरोध करना होगा. ऐसा न करने पर, ब्राउज़र का इस्तेमाल करने पर उपयोगकर्ता को इसके लिए कहा जाएगा.
async function getPermission() {
const opt = { name: 'window-placement' };
try {
const perm = await navigator.permissions.query(opt);
return perm.state === 'granted';
} catch {
return false;
}
}
उपयोगकर्ता से अनुमति मिलने के बाद, window.getScreens()
को कॉल करने पर एक ऐसा प्रॉमिस मिलता है जो Screen
ऑब्जेक्ट के कलेक्शन के साथ रिज़ॉल्व होता है.
const screens = await window.getScreens();
console.log(screens);
// [
// {id: 0, internal: false, primary: true, left: 0, ...},
// {id: 1, internal: true, primary: false, left: 3008, ...},
// ]
इसके बाद, requestFullScreen()
को कॉल करते समय या नई विंडो डालते समय, उस जानकारी का इस्तेमाल किया जा सकता है. Tom ने web.dev पर मल्टी-स्क्रीन विंडो प्लेसमेंट एपीआई की मदद से कई डिसप्ले मैनेज करना लेख में इस बारे में पूरी जानकारी दी है.
अन्य डेटा
नया सीएसएस सिलेक्टर, :focus-visible
, आपको उसी हेयुरिस्टिक के लिए ऑप्ट-इन करने की सुविधा देता है जिसका इस्तेमाल ब्राउज़र, डिफ़ॉल्ट फ़ोकस इंडिकेटर दिखाने का फ़ैसला करते समय करता है.
/* Focusing the button with a keyboard will
show a dashed black line. */
button:focus-visible {
outline: 4px dashed black;
}
/* Focusing the button with a mouse, touch,
or stylus will show a subtle drop shadow. */
button:focus:not(:focus-visible) {
outline: none;
box-shadow: 1px 1px 5px rgba(1, 1, 0, .7);
}
सीएसएस ::marker
स्यूडो-एलिमेंट की मदद से, सूचियों के लिए नंबर या बुलेट का रंग, साइज़ या टाइप अपनी पसंद के मुताबिक बनाया जा सकता है.
li::marker {
content: '😍';
}
li:last-child::marker {
content: '🤯';
}
Chrome Dev Summit, आपके आस-पास की स्क्रीन पर दिखेगा. ज़्यादा जानकारी के लिए, हमारे YouTube चैनल पर बने रहें!
इसके बारे में और पढ़ें
इसमें सिर्फ़ कुछ खास हाइलाइट शामिल हैं. Chrome 86 में हुए अन्य बदलावों के बारे में जानने के लिए, यहां दिए गए लिंक देखें.
- Chrome DevTools (86) में नया क्या है
- Chrome 86 में बंद की गई सुविधाएं और हटाई गई सुविधाएं
- Chrome 86 के लिए ChromeStatus.com के अपडेट
- Chrome 86 में JavaScript में नया क्या है
- Chromium सोर्स रिपॉज़िटरी में हुए बदलावों की सूची
सदस्यता लें
अगर आपको हमारे वीडियो के बारे में अप-टू-डेट रहना है, तो Chrome Developers के YouTube चैनल की सदस्यता लें. ऐसा करने पर, जब भी हम कोई नया वीडियो लॉन्च करेंगे, तो आपको ईमेल से सूचना मिलेगी. इसके अलावा, अपने फ़ीड रीडर में आरएसएस फ़ीड जोड़ें.
मेरा नाम पीट लेपेज है. Chrome 87 के रिलीज़ होने के बाद, मैं आपको बताऊंगा कि Chrome में नया क्या है!