Experimental: ããã¯å®é¨çãªæ©è½ã§ãã
æ¬çªã§ä½¿ç¨ããåã«ãã©ã¦ã¶ã¼äºææ§ä¸è¦§è¡¨ããã§ãã¯ãã¦ãã ããã
åãè¾¼ã¾ããã¯ãã¹ãªãªã¸ã³ã®ææ¸ã§ Storage Access API ã使ç¨ãã¦ããã¡ã¼ã¹ããã¼ãã£ã¹ãã¬ã¼ã¸ã«ã¢ã¯ã»ã¹ã§ãããã©ããã確èªããããã§ãªãå ´åã¯ã¢ã¯ã»ã¹ãè¦æ±ããå¿ è¦ãããã¾ãã ä¸è¬çãªã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹ã®ã·ããªãªã«ã¤ãã¦ç°¡åã«èª¬æãã¾ãã
使ç¨ä¸ã®æ³¨æStorage Access API ã¯ãã¦ã¼ã¶ã¼ã®ãã©ã¦ã¶ã¼ããã¹ã¦ã®ãµã¼ããã¼ãã£ã®ã¯ããã¼ããããã¯ããããã«è¨å®ããã¦ããå ´åã«ãããã¯ãããã¹ãã¬ã¼ã¸ã¸ã®ã¢ã¯ã»ã¹ãåãè¾¼ã¾ããã³ã³ãã³ããè¦æ±ã§ããããã«è¨è¨ããã¦ãã¾ãã åãè¾¼ã¾ããã³ã³ãã³ãã¯ã¦ã¼ã¶ã¼ã使ç¨ãã¦ããã¹ãã¬ã¼ã¸ããªã·ã¼ãèªèããªããããã¹ãã¬ã¼ã¸ããã®èªã¿åãã¾ãã¯æ¸ãè¾¼ã¿ã試ã¿ãåã«ã常ã«åãè¾¼ã¾ãããã¬ã¼ã ã«ã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹ããããã©ããã確èªããã®ãæåã§ãã ããã¯ãDocument.cookie
ã¸ã®ã¢ã¯ã»ã¹ã®å ´åã«ç¹ã«å½ã¦ã¯ã¾ãã¾ãã ãµã¼ããã¼ãã£ã®ã¯ããã¼ããããã¯ãããã¨ããã©ã¦ã¶ã¼ã¯ãã°ãã°ç©ºã®ã¯ããã¼ã¸ã£ã¼ãè¿ãããã§ãã
ãã®ä¾ã§ã¯ãåãè¾¼ã¾ããã¯ãã¹ãªãªã¸ã³ <iframe>
ãããµã¼ããã¼ãã£ã®ã¯ããã¼ããããã¯ããã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹ããªã·ã¼ã®ä¸ã§ã¦ã¼ã¶ã¼ã®ã¯ããã¼ã«ã¢ã¯ã»ã¹ããæ¹æ³ã示ãã¾ãã
ã¾ãã<iframe>
ããµã³ãããã¯ã¹åããã¦ããå ´åãæ¬¡ã®ããã«ãåãè¾¼ã¾ããã¦ã§ããµã¤ã㯠allow-storage-access-by-user-activation
sandbox ãã¼ã¯ã³ã追å ãã¦ãã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹è¦æ±ãæåãããã¨ã許å¯ããã¨ã¨ãã«ãallow-scripts
㨠allow-same-origin
ã使ç¨ã㦠API ã®å¼ã³åºãã許å¯ããã¯ããã¼ãæã¤ãã¨ãã§ãããªãªã¸ã³ã§å®è¡ãã¾ãã
<iframe
sandbox="allow-storage-access-by-user-activation
allow-scripts
allow-same-origin">
...
</iframe>
次ã«ãåãè¾¼ã¾ããææ¸å
ã§å®è¡ãããã³ã¼ãã«é²ã¿ã¾ãã ç¾å¨ã¹ãã¬ã¼ã¸ã«ã¢ã¯ã»ã¹ã§ãããã©ããã¯ããããªããããæåã« Document.hasStorageAccess()
ãå¼ã³åºãå¿
è¦ãããã¾ãã ãã®å¼ã³åºãã false
ãè¿ãå ´åãDocument.requestStorageAccess()
ãå¼ã³åºããã¨ãã§ãã¾ãã ãããè¿ããçµæã¯ãåã® Promise å¼ã³åºãã«ãã§ã¼ã³ã§ãã¾ãã æå¾ã® then
ã§ã¯ããã¡ã¼ã¹ããã¼ãã£ã¹ãã¬ã¼ã¸ã¸ã®ã¢ã¯ã»ã¹ãå¯è½ã«ãªãã¾ãã
document
.hasStorageAccess()
.then((hasAccess) => {
if (!hasAccess) {
return document.requestStorageAccess();
}
})
.then((_) => {
// ããã§ããã¡ã¼ã¹ããã¼ãã£ã¹ãã¬ã¼ã¸ã«ã¢ã¯ã»ã¹ã§ãã¾ãï¼
// ãã¡ã¼ã¹ããã¼ãã£ã®ã¯ããã¼ã¸ã£ã¼ããããã¤ãã®ã¢ã¤ãã ã«ã¢ã¯ã»ã¹ãã¾ããã
document.cookie = "foo=bar"; // ã¯ããã¼ãè¨å®
localStorage.setItem("username", "John"); // localStorage ã¨ã³ããªã«ã¢ã¯ã»ã¹
})
.catch((_) => {
// ã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹ã®åå¾ã¨ã©ã¼ã
});
åãè¾¼ã¾ããã³ã³ãã³ããã¿ãããã¯ãªãã¯ãªã©ã®ã¦ã¼ã¶ã¼ã¸ã§ã¹ãã£ã¼ãç¾å¨å¦çãã¦ããªãéããã¢ã¯ã»ã¹è¦æ±ã¯èªåçã«æå¦ããããã¨ã«æ³¨æãã¦ãã ããã ãã®ã³ã¼ãã¯ãä¾ãã°ã次ã®ãããªã¦ã¼ã¶ã¼ã¸ã§ã¹ãã£ã¼ãã¼ã¹ã®ã¤ãã³ããã³ãã©ã¼å ã§å®è¡ããå¿ è¦ãããã¾ãã
btn.addEventListener("click", () => {
// ããã§ã³ã¼ããå®è¡ãã¾ã
});
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4