Iframe рддрддреНрд╡ (рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝реНрд░реЗрдо рдХреЗ рд▓рд┐рдП рдЫреЛрдЯрд╛) рд╕рдВрднрд╡рддрдГ рд╕рдмрд╕реЗ рдкреБрд░рд╛рдиреЗ HTML рдЯреИрдЧреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдФрд░ рдЗрд╕реЗ 1997 рдореЗрдВ Microsoft 4. рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ HTML 4.01 рдореЗрдВ рд╡рд╛рдкрд╕ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рднреА рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕ рдЯреИрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдВрддрд╣реАрди рд▓реЗрдЦ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕ рдЯреИрдЧ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЬреЛ рдЦрд░рд╛рдм рдкреНрд░рддрд┐рд╖реНрдард╛ рд╣реИ, рдЙрд╕реЗ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдЯреИрдЧ рдХреЗ рдХрдИ рдЕрдЪреНрдЫреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, iframes рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрдирд╛ рдЗрддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рд╕рдВрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреА рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
рдЕрдкрдиреА рдЦреБрдж рдХреА рд░рд╛рдп рдмрдирд╛рдиреЗ рдФрд░ рдЕрдкрдиреЗ рдбреЗрд╡рд▓рдкрд░ рдХреМрд╢рд▓ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдореЗрдВ рдЖрдкрдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реА рдЯреИрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЛ рдЬреЛ рдХреБрдЫ рднреА рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рдо рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
, iframe, , , , iframe . , , iframe, .
iframe ?
iframe HTML- .
, , (, ┬л┬╗ Facebook), YouTube, -.
, 500px Google:
<iframe src="https://www.google.com/" height="500px" width="500px"></iframe>
, , - Twitter:
<iframe src="https://platform.twitter.com/widgets/tweet_button.html" style="border: 0; width:130px; height:20px;"></iframe>
iframe, , HTML- . , JavaScript CSS . iframe тАФ iframe.
, , .Iframe .
тАФ .
(* -, )
, JavaScript CSS, :
1) . , . CSS- , , iframe srcdoc . .
<iframe srcdoc="<html><body>The content you see here will never be affected by the CSS of its parent container. It supposed to be rendered in black on a white background.</body></html>"></iframe>
* srcdoc. HTML, <!DOCTYPE>
<html>
, , , . src srcdoc, src .
2) , iframe , , WYSIWYG- . , , .
iframe , , , . iframe ( ), .
, iframe
, iframe.
<iframe
src="https://google.com/" <!-- -->
srcdoc="<p>Some html</p>"
height="100px"
width="100px"
name="my-iframe"
allow="fullscreen"
referrerpolicy="no-referrer"
sandbox="allow-same-origin"
></iframe>
, , , HTML5: align, frameborder, longdesc, marginheight, marginwidth scrollingтАж
*. iframe . , style, CSS border none.
<iframe src="https://logrocket.com/" style="border: none;"></iframe>
iframe
iframe , . iframe, , . , , :
load event тАФ c . , iframe . , , DOM load.
тАФ error event .
onload onerror :
<iframe src="https://logrocket.com/" onload="onLoad()" onerror="onError()"></iframe>
, iframe .
// iframe
const iframe = document.createElement("iframe");
iframe.onload = function() {
console.log("iframe ");
};
iframe.onerror = function() {
console.log("- , , !");
};
iframe.src = "https://logrocket.com/";
document.body.appendChild(iframe);
// iframe
const iframe = document.querySelector('.my-iframe');
iframe.onload = function() {
console.log("iframe ");
}
iframe.onerror = function() {
console.log("- , , !");
}
iframe. postMessage, MDN .
:
const myiframe = document.getElementById('myIframe');
myIframe.contentWindow.postMessage('message', '*');
iframe:
window.onmessage = function(event){
if (event.data == 'message') {
console('Message received!');
}
};
iframe
iframe:
window.top.postMessage('reply', '*')
:
window.onmessage = function(event){
if (event.data == 'reply') {
console('Reply received!');
}
};
: , , - , (fire-and-forget) ( . тАФ ).
iframe, , , .
, (, ).
, .
sandbox () allow() .
! , тАФ , . ┬л ┬╗.
sandbox
:
, iframe.
, iframe , :
<iframe sandbox="allow-forms allow-modals" src="https://www.something.com/"></iframe>
, , , .
, , .
, , ┬л┬╗ ┬л┬╗ iframe.
, JavaScript iframe , (*, ).
, , .
<iframe sandbox="allow-forms allow-modals" src="https://www.something.com/"></iframe>
. Internet Explorer 9 .
allow
allow Chromium. , iframe , .
25 , . Mozilla.
:
,
iframe, , <iframe> </ iframe>.
, , .
<iframe>
<p> iframe</p>
</iframe>
, iframe (.. )?
seamless. ( Chromium).
* W3C HTML5 .
<iframe seamless src="https://logrocket.com/"></iframe>
iframes SEO ?
, . .
iframes, . , , , :
тАЬ , -, , , тАФ . Iframes, , . тАЬ
, , , iframes, Google. , , Googlebot .
. , .
?
iframe , , . iframe, , , .
, , (.. , , , ). , loading = ┬лlazy┬╗.
, Chromium . lazyload, .
<iframe src = "https://logrocket.com/" loading = "lazy"> </ iframe>
. loading = ┬лlazy┬╗ img, .
iframe ?
, , , . , ?
iframe . :
. , embed-responsive embed-responsive-16by9, , .
<div class="embed-responsive embed-responsive-16by9">
<iframe src="https://logrocket.com/" loading="lazy"></iframe>
</div>
iframe
, , . , iframes CSS- , , .
iframe
! iframe contentWindow, :
// Get the iframe
const iframe = document.getElementById('myIframe');
// Reload the iframe
iframe.contentWindow.location.reload();
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рдЧрд╛рдЗрдб рдиреЗ рдЖрдкрдХреЛ рдлрд╝реНрд░реЗрдо рдХреЗ рдЕрдкрдиреЗ рдЬреНрдЮрд╛рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХреА рд╣реИред
рдпрджреНрдпрдкрд┐ рд╡реЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдк рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рд╛рдордЧреНрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдн рднреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд╡рд┐рдХрд╛рд╕рд╢реАрд▓ рд╢рд╕реНрддреНрд░рд╛рдЧрд╛рд░ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЙрдкрдпреБрдХреНрдд рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЕрдЧрд░ рдЖрдкрдХреЛ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдХреБрдЫ рдЬреЛрдбрд╝рдирд╛ рд╣реИ, рддреЛ рдЖрдк рдореБрдЭреЗ рдиреАрдЪреЗ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рд╕рдВрдкрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЯреНрд╡рд┐рдЯрд░ @RifkiNada рдкрд░ рдореБрдЭрд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╡реЗрдм рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддреЗ рд╣реИрдВред