рд╡реНрдпрд╛рдкрдХ рдЖрдЗрдлреНрд░реЗрдо рдЯреИрдЧ рдЧрд╛рдЗрдб

iframe рдЯреИрдЧ

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>"    <!--  HTML-    --> 

  height="100px"               <!--   iframe   -->

  width="100px"                <!--   iframe   -->

  name="my-iframe"          <!--   iframe (        JavaScript -->

  allow="fullscreen"           <!--     iframe.-->

  referrerpolicy="no-referrer" <!--        iframe -->

  sandbox="allow-same-origin"  <!--   iframe (   ) -->
></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


:


allow-forms
allow-modals
allow-orientation-lock.
allow-pointer-lockAPI (Pointer Lock API)
allow-popups.
allow-popups-to-escape-sandbox, .
allow-presentation.
allow-same-origin.
allow-scripts.
allow-top-navigation.
allow-top-navigation-by-user-activation, .

, 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.


:


accelerometer
ambient-light-sensorAmbientLightSensor
autoplay
batteryAPI
camera
fullscreen
geolocationAPI
gyroscopeSensors API Gyroscope.
magnetometerAPI
microphone
midi-MIDI API
paymentAPI
usbAPI WebUSB
vibrateAllows access to the Vibration API


,


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 рдкрд░ рдореБрдЭрд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ


рд╡реЗрдм рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддреЗ рд╣реИрдВред

All Articles