निजता और सुरक्षा को बेहतर बनाने के लिए, तीसरे पक्ष के iframe में Web Share API कॉल के लिए अब साफ़ तौर पर अनुमति देना ज़रूरी है.
इस लेख में, Web Share API में होने वाले संभावित बड़े बदलाव के बारे में बताया गया है. यह बदलाव पहले से ही Firefox में लागू है. यह Chrome के वर्शन 110 से लागू होगा. साथ ही, उम्मीद है कि यह Safari में जल्द ही लागू हो जाएगा.
Web Share API की मदद से, टेक्स्ट, यूआरएल या फ़ाइलें शेयर की जा सकती हैं. आसान शब्दों में कहें, तो शेयर कोड कुछ ऐसा दिखता है:
try {
await navigator.share({
title: 'Title',
text: 'Text',
url: location.href,
});
} catch (err) {
console.error(`${err.name}: ${err.message}`);
}
अगर शेयर करने की कार्रवाई को तीसरे पक्ष के iframe में करना है, तो हाल ही में हुए स्पेसिफ़िकेशन में बदलाव के मुताबिक, आपको इस कार्रवाई को अनुमति देनी होगी. इसके लिए, <iframe>
टैग में allow
एट्रिब्यूट जोड़ें और उसकी वैल्यू web-share
पर सेट करें. इससे ब्राउज़र को पता चलता है कि एम्बेड करने वाली साइट, एम्बेड किए गए तीसरे पक्ष के iframe को शेयर करने की कार्रवाई ट्रिगर करने की अनुमति देती है.
<!DOCTYPE html>
<html lang="en">
<body>
<h1>Web Share in third-party iframes</h1>
<!-- The embedding page is hosted on https://example.com/index.html. -->
<iframe allow="web-share" src="https://third-party.example.com/iframe.html"></iframe>
</body>
</html>
GitHub पर डेमो में इसे काम करते हुए देखा जा सकता है. साथ ही, सोर्स कोड देखा जा सकता है.
इस एट्रिब्यूट की वैल्यू न देने पर, आपको NotAllowedError
दिखेगा. साथ ही, आपको यह मैसेज दिखेगा: Failed to execute 'share' on 'Navigator': Permission denied
. सभी ब्राउज़र वेंडर ने इस सीमा को स्वीकार किया है. इससे उपयोगकर्ताओं की निजता और सुरक्षा को बेहतर बनाया जा सकेगा. साथ ही, बुरे मकसद से काम करने वाले लोगों को रोका जा सकेगा. उदाहरण के लिए, आपत्तिजनक विज्ञापनों को शेयर करने की अनचाही कार्रवाइयों को ट्रिगर करने से रोका जा सकेगा.