<fencedframe>ï¼å´æ æ¡æ¶å ç´
æéå¯ç¨
æ¤ç¹æ§ä¸å±äºåºçº¿ï¼å 为å®å°æªå¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æã
å®éªæ§: è¿æ¯ä¸é¡¹å®éªæ§ææ¯
å¨å°å
¶ç¨äºç产ä¹åï¼è¯·ä»ç»æ£æ¥æµè§å¨å
¼å®¹æ§è¡¨æ ¼ã
<fencedframe> HTML å
ç´ è¡¨ç¤ºä¸ä¸ªåµå¥çæµè§ä¸ä¸æï¼ç¨äºå°å¦ä¸ä¸ª HTML 页é¢åµå
¥å°å½å页é¢ä¸ã<fencedframe> å¨å½¢å¼ååè½ä¸ä¸ <iframe> å
ç´ é常ç¸ä¼¼ï¼ä½æä»¥ä¸ä¸åï¼
<fencedframe>å 容ä¸åµå ¥ç½ç«ä¹é´éä¿¡åå°éå¶ã<fencedframe>å¯ä»¥è®¿é®è·¨ç«æ°æ®ï¼ä½ä» éäºå¨é常ç¹å®çåæ§æ åµä¸è¿è¡ï¼ä»¥ä¿æ¤ç¨æ·éç§ã<fencedframe>ä¸è½éè¿å¸¸è§èæ¬è¿è¡èªç±æä½æè®¿é®å ¶æ°æ®ï¼ä¾å¦è¯»åæè®¾ç½®æº URLï¼ã<fencedframe>å 容åªè½éè¿ç¹å® API åµå ¥ã<fencedframe>æ æ³è®¿é®åµå ¥ä¸ä¸æç DOMï¼åµå ¥ä¸ä¸æä¹æ æ³è®¿é®<fencedframe>ç DOMã
<fencedframe> å
ç´ æ¯ä¸ç§å
ç½®æ´å¤åçéç§ç¹æ§ç <iframe>ãå®è§£å³ <iframe> çä¸äºç¼ºé·ï¼æ¯å¦å¯¹ç¬¬ä¸æ¹ cookie çä¾èµä»¥åå
¶ä»éç§é£é©ãåè§å´æ æ¡æ¶ API è·åæ´å¤ä¿¡æ¯ã
屿§
å ç´ å å«å ¨å±å±æ§ã
allow-
为
<fencedframe>æå®æéçç¥ï¼è¯¥çç¥æ ¹æ®è¯·æ±çæ¥æºå®ä¹<fencedframe>å¯ç¨çç¹æ§ã请åè§å´æ æ¡æ¶å¯ç¨çæéçç¥äºè§£å¨å´æ æ¡æ¶ä¸è®¾ç½®ççç¥æ¥æ§å¶åªäºç¹æ§ç详ç»ä¿¡æ¯ã height-
以 CSS åç´ ä¸ºåä½è¡¨ç¤ºå´æ æ¡æ¶é«åº¦çæ åä½çæ´æ°ãé»è®¤å¼ä¸º
150ã width-
以 CSS åç´ ä¸ºåä½è¡¨ç¤ºå´æ æ¡æ¶å®½åº¦çæ åä½çæ´æ°ãé»è®¤å¼ä¸º
300ã
å´æ æ¡æ¶å¯ç¨çæéçç¥
ä»é¡¶å±ä¸ä¸æå§æç»å´æ æ¡æ¶çæéï¼ç¨äºå
许ææç»å¯è½ä¼è¢«ç¨ä½éä¿¡æ¸ éçç¹æ§ï¼ä»èææéç§å¨èãå æ¤ï¼é£äºå¯éè¿æéçç¥ï¼ä¾å¦ï¼camera ægeolocationï¼æ§å¶å
¶å¯ç¨æ§çæ åç½é¡µç¹æ§å¨å´æ æ¡æ¶å
æ¯ä¸å¯ç¨çã
å´æ æ¡æ¶å çç¥å¯ä»¥å¯ç¨çå¯ä¸ç¹æ§æ¯è®¾è®¡ç¨äºå´æ æ¡æ¶å çç¹å®ç¹æ§ï¼
- åä¿æ¤çåä¼ API
attribution-reportingprivate-aggregationshared-storageshared-storage-select-url
- å
±äº«åå¨ API
attribution-reportingprivate-aggregationshared-storageshared-storage-select-url
å½åè¿äºç¹æ§å¨å´æ æ¡æ¶å
æ»æ¯å¯ç¨çãæªæ¥å°è½å¤éè¿ <fencedframe> ç allow 屿§æ¥æ§å¶åªäºç¹æ§è¢«å¯ç¨ã以è¿ç§æ¹å¼é»æ¢éç§æ²ç®±ç¹æ§ï¼ä¹å°é»æ¢å´æ æ¡æ¶çå è½½ââå³å®å
¨ä¸åå¨éä¿¡æ¸ éã
å´æ æ¡æ¶è¾¹çé´ç忢ç¦ç¹
ææ¡£çæ¿æ´»ç¦ç¹è·¨å´æ æ¡æ¶è¾¹çç§»å¨çè½åï¼å³ä»å´æ æ¡æ¶å¤çå ç´ ç§»å¨å°å´æ æ¡æ¶å çå ç´ ï¼åä¹äº¦ç¶ï¼æ¯åéçãç¨æ·åèµ·çæä½ï¼å¦ç¹å»ææ Tab é®ï¼å¯ä»¥å®ç°è¿ç§ç§»å¨ï¼å 为è¿ç§æ åµä¸ä¸åå¨æçº¹è¿½è¸ªçé£é©ã
ç¶èï¼å°è¯éè¿ API è°ç¨ï¼å¦ HTMLElement.focus()ï¼æ¥è·¨è¶è¾¹çæ¯è¢«ç¦æ¢çââæ¶æèæ¬å¯è½ä¼å©ç¨ä¸ç³»åæ¤ç±»è°ç¨æ¥æ³é²è·¨è¾¹ççæ¨æä¿¡æ¯ã
å®ä½å缩æ¾
ä½ä¸ºå¯æ¿æ¢å
ç´ ï¼<fencedframe> å
è®¸ä½¿ç¨ object-position 屿§è°æ´åµå
¥ææ¡£å¨å
¶æ¡å
çä½ç½®ã
夿³¨ï¼object-fit 屿§å¯¹ <fencedframe> å
ç´ æ æã
<fencedframe> ç config 对象çå
é¨ contentWidth å contentHeight 屿§å¯ç¨äºè®¾ç½®åµå
¥å
容ç尺寸ãå¨è¿ç§æ
åµä¸ï¼æ´æ¹ <fencedframe> ç width æ height å°æ¹å页é¢ä¸åµå
¥å®¹å¨ç尺寸ï¼ä½å®¹å¨å
çææ¡£ä¼ææ¯ä¾ç¼©æ¾ä»¥éåºæ°ç尺寸ãåµå
¥ææ¡£çæ¥å宽度åé«åº¦ï¼å³ Window.innerWidth å Window.innerHeightï¼å°ä¿æä¸åã
æ éç¢
使ç¨è¾
婿æ¯ï¼å¦ï¼å±å¹é
读å¨ï¼å¯¼èªçç¨æ·å¯ä»¥ä½¿ç¨ <fencedframe> ä¸ç title 屿§ä¸ºå
¶å
å®¹æ·»å æ ç¾ãæ é¢çå¼åºç®æ´å°æè¿°åµå
¥çå
容ï¼
<fencedframe
title="æ°ç Log 广åãæ¥èª Blammoï¼"
width="640"
height="320"></fencedframe>
å¦ææ²¡æè¿ä¸ªæ é¢ï¼ç¨æ·å°±å¿
须导èªè¿å
¥ <fencedframe> æè½ç¡®å®å
¶åµå
¥çå
容æ¯ä»ä¹ãè¿ç§ä¸ä¸æç忢å¯è½ä¼è®©äººæå°å°æä¸èæ¶ï¼å°¤å
¶æ¯å¨å
å«å¤ä¸ª <fencedframe> ç页é¢å/æåµå
¥å
容å
å«è§é¢æé³é¢ç交äºå¼å
容çæ
åµä¸ã
示ä¾
è¦è®¾ç½®å°å¨ <fencedframe> 䏿¾ç¤ºçå
容ï¼ä½¿ç¨ APIï¼å¦åä¿æ¤çå伿å
±äº«åå¨ï¼çæä¸ä¸ª FencedFrameConfig 对象ï¼ç¶åå°å
¶è®¾ç½®ä¸º <fencedframe> ç config 屿§å¼ã
以ä¸ç¤ºä¾ä»åä¿æ¤çåä¼ API ç广åæåä¸è·åä¸ä¸ª FencedFrameConfigï¼ç¶å使ç¨å®å¨ <fencedframe> 䏿¾ç¤ºæäº¤ç广åï¼
<fencedframe width="640" height="320"></fencedframe>
const frameConfig = await navigator.runAdAuction({
// æåé
ç½®
resolveToConfig: true,
});
const frame = document.querySelector("fencedframe");
frame.config = frameConfig;
ææ¯æ¦è¦
| å 容åç±» | æµå¼å 容ãçè¯å 容ãåµå ¥å 容ã交äºå 容ã坿ç¥å 容 |
|---|---|
| å 许çå 容 | æ ã |
| æ ç¾çç¥ | æ ï¼èµ·å§åç»ææ ç¾é½æ¯å¿ é¡»çã |
| å 许çç¶å ç´ | æ¥ååµå ¥å 容çä»»ä½å ç´ ã |
| éå¼ ARIA è§è² | æ 对åºè§è² |
| å 许ç ARIA è§è² |
applicationãdocumentãimgãnoneãpresentation
|
| DOM æ¥å£ | HTMLFencedFrameElement |
è§è
| è§è |
|---|
| Fenced Frame > # the-fencedframe-element > |
æµè§å¨å ¼å®¹æ§
åè§
- å´æ æ¡æ¶ API
- developers.google.cn ä¸çå´æ æ¡æ¶
- developers.google.cn ä¸çéç§æ²ç