рддреНрд░рд┐рд╢реВрд▓ рдпреБрдЧ рдХрд╛ рдЕрдВрдд

tl; рдбреЙред рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ Microsoft рдЬрдЯрд┐рд▓ рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рднреА рд╕реЗ рдХрдИ рдкреНрд░рдХрд╛рд╢ рд╡рд░реНрд╖ рдЖрдЧреЗ рд╣реИред рдЕрдм рдЗрди рддрдХрдиреАрдХреЛрдВ рдХреЛ рдПрдХ рдореГрддрдХ рд╕рднреНрдпрддрд╛ рдХреЗ рдЦрдВрдбрд╣рд░реЛрдВ рдкрд░ рдлрд┐рд░ рд╕реЗ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред



рдЬрдм рдореИрдВ рдПрдХ рдмрдЪреНрдЪрд╛ рдерд╛, рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдкреНрд░рд╛рдЪреАрди рд╕рднреНрдпрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рд╛рдирд┐рдпреЛрдВ рдкрд░ рдореЛрд╣рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рдЕрдЯрд▓рд╛рдВрдЯрд┐рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рддрд╛рдмреЗрдВ рдкрдврд╝реАрдВ, рдпреВрдирд╛рдирд┐рдпреЛрдВ, рд░реЛрдордиреЛрдВ, рдЗрдВрдХрд╛ рд╕рд╛рдореНрд░рд╛рдЬреНрдп рдФрд░ рдкреНрд░рд╛рдЪреАрди рдорд┐рд╕реНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЗрдирд░рд┐рдХ рд╢реНрд▓реАрдореИрди рджреНрд╡рд╛рд░рд╛ рдЯреНрд░реЙрдп рдХреА рдЦреЛрдЬ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдФрд░ рдореИрдВ рд╣рдореЗрд╢рд╛ рдЦрдЧреЛрд▓ рд╡рд┐рдЬреНрдЮрд╛рди , рдЧрдгрд┐рдд рдФрд░ рдЪрд┐рдХрд┐рддреНрд╕рд╛ , рдЙрдирдХреА рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ, рдЗрди рд╡рд┐рд╢рд╛рд▓ рд╕реНрдорд╛рд░рдХреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЕрддреНрдпрдзрд┐рдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╕рд╛рдорд╛рдЬрд┐рдХ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЙрдирдХреЗ рдЙрдиреНрдирдд рдЬреНрдЮрд╛рди рдкрд░ рдореЛрд╣рд┐рдд рдерд╛ред рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдИрд╕рд╛рдИ рд╕рдВрд╕реНрдХреГрддрд┐ рдХреЗ рдЖрдЧрдорди рд╕реЗ рд╣рдЬрд╛рд░реЛрдВ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛!

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпреЗ рд╕рднреА рдЕрддреНрдпрдзрд┐рдХ рд╡рд┐рдХрд╕рд┐рдд рд╕рднреНрдпрддрд╛рдПрдВ рдЕрдВрддрддрдГ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИрдВред рдХреБрдЫ рд▓реЛрдЧ рдЪреБрдкрдЪрд╛рдк рдорд░ рдЧрдП, рджреВрд╕рд░реЛрдВ рдХреЛ рд╕рднреНрдпрддрд╛рдУрдВ рдиреЗ рдмреЗрд╣рддрд░ рд╣рдерд┐рдпрд╛рд░реЛрдВ рд╕реЗ рджрдмрд╛ рджрд┐рдпрд╛ред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╡рд┐рдЬреЗрддрд╛рдУрдВ рдХреЛ рд╕рдореГрджреНрдз рдХрд┐рдП рдмрд┐рдирд╛, рдкрд░рд╛рдЬрд┐рдд рдХреА рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рдореБрдЦ рд╕рдореВрд╣ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡реЗ рдмрд╕ рдЧрд╛рдпрдм рд╣реЛ рдЧрдПред рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рдПрдХ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╡рд┐рдХрд╛рд╕ рдШрдЯрдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ред

рддреНрд░рд┐рд╢реВрд▓ рдЗрдВрдЬрди рдХреА рдЖрдпреБ


Windows 10 Microsoft Edge Chromium. , Trident.

Trident , Edge? .

Microsoft Edge 2015 , Trident EdgeHTML , ActiveX ( Java- Microsoft) IE. , -, IE 11 Edge 17. Edge Chakra, JavaScript, . , , Internet Explorer.

Internet Explorer -. Microsoft . , -, - Edge, - , Google API Google I/O Chrome Dev. Google, Google, Angular AMP, Google, Gmail, Search, Drive, Maps, Google Docs, Analytics , , Lighthouse. , , HTML5, , Google -, -. Google Gears? Google Chrome Frame?

, Internet Explorer. ActiveX Internet Explorer 3.0 <object>, ┬л ┬╗ Java. , IE. , AJAX: JavaScript Exchange / Outlook Web Access, Gmail. Microsoft, Internet Explorer 5.0 1999 . AJAX .

┬л MSXML. XMLHTTP тАФ HTTP XML, , XML ( , XML , )┬╗.

document.designMode (, Hotmail) contentEditable, DOM, Drag-n-Drop API, ifram . Internet Explorer , :



Microsoft . Internet Explorer  (!) 100 . . !

┬л[] HTML- iframe. , ┬л ┬╗, ┬╗.

2012 Internet Explorer -. Windows 8 Windows Store, Windows Store Apps. , Windows, Xbox Windows Phone. Microsoft , . -. - JavaScript- WinJS, Internet Explorer 10.



Windows UI -, Microsoft IE : CSS Grid, CSS Flexbox, CSS Scroll Snap Points Pointer Events API ( , Apple Touch API).


Microsoft , Origin Trials. , Edge 2015 .

, , Internet Explorer , . , , . , IE, , Microsoft . !


MHTML


тАФ MHTML ┬лMIME- HTML-┬╗. MHTML , . MHTML HTML-, , CSS, JavaScript- , base64. data URI . MHTML Web Bundles. IE 5, Opera Presto. MHTML, Chromium , chrome://flags/#save-page-as-mhtml. MHTML IETF, - .

: Outlook Express MHTML .eml .


Internet Explorer , HTTP :

<meta http-equiv="Page-Enter"
      content="RevealTrans(Duration=0.600, Transition=6)">

, , . , :

  • 0 тАФ Box in
  • 1 тАФ Box out
  • 2 тАФ Circle in
  • 3 тАФ Circle out
  • 4 тАФ Wipe up
  • 5 тАФ Wipe down
  • 6 тАФ Wipe right
  • 7 тАФ Wipe left
  • 8 тАФ Vertical blinds
  • 9 тАФ Horizontal blinds
  • 10 тАФ Checkerboard across
  • 11 тАФ Checkerboard down
  • 12 тАФ Random dissolve
  • 13 тАФ Split vertical in
  • 14 тАФ Split vertical out
  • 15 тАФ Split horizontal in
  • 16 тАФ Split horizontal out
  • 17 тАФ Strips left down
  • 18 тАФ Strips left up
  • 19 тАФ Strips right down
  • 20 тАФ Strips right up
  • 21 тАФ Random bars horizontal
  • 22 тАФ Random bars vertical
  • 23 тАФ

Page-Enter, Page-Exit, Site-Enter Site-Exit. тАФ , .


, DOM. ramjet , , .

CSS Transitions CSS crossfade().

( 600 ):

img.style.filter = 'blendTrans(duration=0.600)';

, - , :

img.filters.blendTrans.apply();

, :

img.src = 'different-src.jpg';
img.filters.blendTrans.play();




Internet Explorer 4+. 1997 , CSS Filters, Apple Safari 6 2012 .



Matrix Filter Internet Explorer , CSS Transforms:

transform: rotate(15deg);
filter: progid:DXImageTransform.Microsoft.Matrix(
            M11=0.9659258262890683,
            M12=-0.2588190451025207,
            M21=0.2588190451025207,
            M22=0.9659258262890683,
            SizingMethod='auto expand');

Chroma Filter , .


, Internet Explorer 10? , CSS-:

filter: progid:DXImageTransform.Microsoft.gradient(enabled='false',
                startColorstr=#550000FF, endColorstr=#55FFFF00)

, Internet Explorer 8- hex- RGBA, CSS 2016 CSS Color Module Level 4.


Internet Explorer 1999 , 2013 Safari .



body {
  scrollbar-base-color: #C0C0C0;
  scrollbar-3dlight-color: #C0C0C0;
  scrollbar-highlight-color: #C0C0C0;
  scrollbar-track-color: #EBEBEB;
  scrollbar-arrow-color: black;
  scrollbar-shadow-color: #C0C0C0;
  scrollbar-darkshadow-color: #C0C0C0;
}

Box-Sizing


Internet Explorer , box-sizing: border-box . Microsoft , CSS WG , width , .



┬л, . , . - , . . (┬л┬╗). . -, , , . , , . ┬╗.

IE 6 , . , . doctype HTML- ( 'use strict'; JavaScript).

IE, CSS:

html {
  box-sizing: border-box;
}

*, *::before, *::after {
  box-sizing: inherit;
}

CSS Expressions


Internet Explorer CSS Expressions, CSS, ┬л ┬╗. , JavaScript, CSS, CSS. CSS Houdini calc() .

, min() max():

width: expression(Math.min(this.parentElement.clientWidth, 400) + 'px');

, 400px. , max-width. this .

IE , CSS ┬л┬╗, :

zoom: expression(
    this.runtimeStyle.zoom = '1',
    this.insertBefore(document.createElement('span'),(this.hasChildNodes()
                        ? this.childNodes[0]
                        : null)).className='before',
    this.appendChild(document.createElement('span')).className='after'
  );

CSS- zoom. , 1. . <span>, , .before .after. Internet Explorer 8 , , CSS-, .

CSS- IE , . , CSS- CPU . ┬л┬╗ CSS , , , , . :

background: expression('#'+Math.floor(Math.random()*16777216).toString(16));

, . ( - ):


, ? , - CSS JavaScript. JavaScript, . , : CPU JavaScript . , , this.style this.runtimeStyle ( Microsoft, style CSS, ). ,  тАФ :

<script>
  window.calcWidth = '100%';
  window.updateWidth = false;
  window.onresize = function() {
    window.updateWidth = true;
  };
</script>
<style>
  .element {
    width: expression(
      updateWidth ?
      (
        calcWidth = Math.min(this.parentElement.clientWidth, 400) + 'px',
        updateWidth = false
      ) :
      calcWidth
    );
  }
</style>

JavaScript? , JavaScript. , . polyfill CSS , . .


Internet Explorer , . @font-face CSS 2.0, CSS 2.1, . Microsoft , - Monotype: Embedded OpenType (EOT). EOT . , Microsoft Web Embedding Fonts Tool (WEFT) , no embedding. , . , URL- , , URL- .

2008 Microsoft Monotype EOT W3C. , gzip () MicroType Express. W3C , gzip, 2010 WOFF.

┬л , URL , HTTP (origin), URL : , URL, . , WOFF MicroType Express Brotli, gzip┬╗.

: PowerPoint 2007 2010, .pptx EOT.

HTML-: Attached Behaviors, Element Behaviors Default Behaviors


1998 Microsoft , , CSS Houdini Web Components. HTML Components:

┬л HTML . , HTML HTML- . HTML- ; HTML- ( HTC) , HTML, CSS JavaScript.

тАФ , , ┬л ┬╗ , , . , . HTML -┬╗.

, Microsoft prior art Web Components.

HTML- Internet Explorer 5 1999 ,  тАФ Internet Explorer 9 2010 .

HTML-: Attached Behavior, Element Behavior Default Behavior.

Attached Behavior


Attached Behavior CSS Houdini Worklet, (.htc), , . CSS:

img {
  behavior: url(roll.htc);
}

.htc XML- , , . DOM element. Attached Behavior , ( ):

<public:attach event="onmouseover" onevent="rollover()" />
<public:attach event="onmouseout" onevent="rollout()" />
<script>
var originalSrc = element.src;
function rollover() {
    element.src = "rollover-" + originalSrc;
}
function rollout() {
    element.src = originalSrc;
}
</script>

Element Behavior


Element Behavior : .htc , , . Custom Elements Web Components. (Light DOM), Shadow DOM. Shadow DOM Microsoft Viewlink. Viewlink (opt-in). Shadow DOM, , .

┬лViewlink тАФ Element Behavior, HTML (DHTML) -┬╗.

Element Behavior HTML CSS. XML, :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns:custom>
<head>
  <?import namespace="custom" implementation="RollImgComponent.htc">
</head>

custom тАФ XML. <?import> , CSS: .htc . .htc :

  1. HTML-, : <public:component tagname="rollimg">
  2. HTML, , : <public:property name="src" />
  3. <template>.

<public:component tagname="rollimg">
  <public:attach event="onmouseover" onevent="rollover()" />
  <public:attach event="onmouseout" onevent="rollout()" />
  <public:property name="src" />
</public:component>

<img id="image" />

<script>
  // IE's document.getElementByID
  var img = document.all['image'];
  img.src = element.src;
  img.id = undefined;
  element.appendChild(img);

  function rollover() {
    img.src = "rollover-" + element.src;
  }
  function rollout() {
    img.src = element.src;
  }
</script>

, .htc document . HTML:

<custom:rollimg src="logo.png">

. DOM :

<custom:rollimg src="logo.png">
  <img src="logo.png" />
</custom:rollimg>

, img , HTML- DOM CSS. , . , Internet Explorer Shadow DOM viewLink:

<public:component tagname="rollimg">
  <public:attach event="onmouseover" onevent="rollover()" />
  <public:attach event="onmouseout" onevent="rollout()" />
  <public:property name="src" />
</public:component>

<img id="image" />

<script>
  // Activates IE's Shadow DOM
  defaults.viewLink = document;

  // IE's document.getElementByID
  var img = document.all['image'];
  img.src = element.src;

  function rollover() {
    img.src = "rollover-" + element.src;
  }
  function rollout() {
    img.src = element.src;
  }
</script>

Default Behavior


тАФ HTML-. , , CSS XML .


тАФ behavior:url(#default#download).

, , download .click(). , :

<!--
the following element needs to be created once in the document.
It then exposes new utility methods you can use, like .startDownload()
-->
<span id="download" style="behavior:url(#default#download)"></span>

<button onclick="download.startDownload('menu.pdf')">Download</button>


behavior: url(#default#userData). , localStorage, . , input IE:

<style>
  #store {
    behavior: url(#default#userData);
  }
</style>

<script>
  function save(){
    store.setAttribute('username', username.value);
    store.setAttribute('email', email.value);
    store.save('exampleStore');
  }
  function restore(){
    store.load('exampleStore');
    username.value = store.getAttribute('username');
    email.value = store.getAttribute('email');
  }
</script>

<span id="store"></span>
<input id="username">
<input id="email">
<button onclick="restore()">restore values</button>
<button onclick="save()">save values</button>

localStorage IE, .

Client Capabilities


Client Capabilities. , . , navigator.offline Network Information API:

<span id="clientcapabilities"
      style="behavior:url(#default#clientCaps)">
</span>

<script>
  // Either "modem" or "lan" or "offline"
  var connectionType = clientcapabilities.connectionType;
</script>

TIME


, Internet Explorer ? SMIL, Synchronized Multimedia Integration Language. , , , , . Microsoft W3C, Internet Explorer. Microsoft , HTML W3C : HTML+TIME (Timed Interactive Multimedia Extensions). W3C , SMIL 2.0 XHTML+TIME. 1999 Internet Explorer 5 1.0. Internet Explorer 5.5 HTML+TIME 2.0, XHTML+TIME W3C. , Microsoft , 'X'.

Default Behavior, CSS, (XML). . , :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
  <style>
    .time {
      behavior: url(#default#time2);
    }
  </style>
</head>
<body>
<div class="time" repeatcount="5" dur="10" timecontainer="par">
  <p class="time" begin="0" dur="4">First line of text.</p>
  <p class="time" begin="2" dur="4">Second line of text.</p>
  <p class="time" begin="4" dur="4">Third line of text.</p>
  <p class="time" begin="6" dur="4">Fourth line of text.</p>
</div>
</body>
</html>


, XML, HTML-, body:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns:t="urn:schemas-microsoft-com:time">
<head>
  <?import namespace="t" implementation="#default#time2">
</head>
<body id="body">
  <t:animateColor targetElement="body"
    attributeName="backgroundColor"
    from="black" to="white"
    begin="0" dur="3" fill="hold"/>
</body>
</html>


HTML, , <video> <audio>, :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns:t ="urn:schemas-microsoft-com:time">
<head>
  <?import namespace="t" implementation="#default#time2">
</head>
<body>
  <t:video id="video" src="video.mpeg" type="video/mpeg"/>
  <div class="controls">
    <button type="button" onclick="video.resumeElement()">play</button>
    <button type="button" onclick="video.pauseElement()">pause</button>
    <button type="button" onclick="video.speed = 1">1x</button>
    <button type="button" onclick="video.speed = 4">4x</button>
  </div>
</body>
</html>


, Windows . , , MPEG-1 AVI, Microsoft Video-1.

Microsoft HTML5:

<video id="html5video" autoplay muted>
  <source src="video.mp4" type="video/mp4"/>
  <t:video id="video" src="video.mpeg" type="video/mpeg"/>
</video>
<div class="controls">
  <button type="button"
    onclick="html5video.play ? html5video.play() : video.resumeElement()">play</button>
  <button type="button"
    onclick="html5video.pause ? html5video.pause() : video.pauseElement()">pause</button>
  <button type="button"
    onclick="html5video.playbackRate = video.speed = 1">1x</button>
  <button type="button"
    onclick="html5video.playbackRate = video.speed = 4">4x</button>
</div>

. . , IE 5.5-8.

Vector Markup Language


1999 Microsoft , : Vector Markup Language, VML. Autodesk, Hewlett-Packard, Macromedia, Microsoft Vision W3C 1998 . , W3C Precision Graphics Markup Language (PGML), Adobe Systems Sun Microsystems. , W3C Scalable Vector Graphics (SVG) 2001 . SVG Konqueror 3.2 2004 .

, VML , , HTML, . SVG VML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>SVG Ellipse</title>
</head>
<body>
<svg>
  <ellipse cx="200"
    cy="80"
    rx="100"
    ry="50"
    fill="yellow"
    stroke="purple"
    stroke-width="2" />
</svg>
</body>
</html>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns:v="urn:schemas-microsoft-com:vml" lang="en">
<head>
  <title>VML Ellipse</title>
  <style>v\:* {behavior:url(#default#VML);}</style>
</head>
<body>
<v:oval
  style="position: absolute; width: 200; height: 100; left: 100; top: 30;"
  fillcolor="yellow"
  strokecolor="purple"
  strokeweight="2">
</v:oval>
</body>
</html>

, -.


Internet Explorer 4.0 1997 , . CSV <object>:

<object id="data" classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
 <param name="DataURL" value="data.csv">
</object>

CSV- ( :)

<object id="data" classid="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33">
    <param name="Server"  value="http://server">
    <param name="Connect" value="dsn=database;uid=guest;pwd=">
    <param name="SQL"     value="select name from people">
</object>

( , classid ).

, XML- <xml>тАж

<xml src="http://localhost/xmlFile.xml"></xml>

тАж XML, HTML :

<body>
<xml id="data">
  <?xml version="1.0" encoding="UTF-8" ?>
  <records>
    <record>
      <name>Willa Galloway</name>
      <email>tortor@dictum.com</email>
      <phone>098-122-8540</phone>
      <city>Tenali</city>
    </record>
    <record>
      ...
    </record>
    ...
  </records>
</xml>
</body>

XML XML Data Island , SVG, HTML, HTML, SVG <foreignObject>, .

┬лXML Data Islands тАФ XML- HTML-. (. . ) XML- . ┬л XML┬╗, HTML-┬╗.

, , Internet Explorer, , :

<input type="text" datasrc="#data" datafld="name">


input, . , :

<xml id="data">
  <record>
    <name></name>
  </record>
</xml>
<h1>Hello, <span datasrc="#data" datafld="name"></span>!</h1>
<label>Your name: <input datasrc="#data"
                         datafld="name"
                         onkeyup="this.blur();this.focus()">
</label>

onkeyup="this.blur();this.focus()" тАФ , (input).


Data Grid


Internet Explorer data grid, <table>. Tabular Data Control. datafld, HTML- тАФ dataformatas, ,  тАФ datapagesize. previousPage, nextPage, firstPage lastPage .

<table id="datagrid"
       datasrc="#people"
       datapagesize="10">
  <thead>
    <tr>
      <th>Name</th>
      <th>Email</th>
      <th>Phone</th>
      <th>City</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><span datafld="name"></span></td>
      <td><span datafld="email"></span></td>
      <td><span datafld="phone"></span></td>
      <td><span datafld="city"></span></td>
    </tr>
  </tbody>
</table>
<button onclick="datagrid.previousPage()">< previous</button>
<button onclick="datagrid.nextPage()">next ></button>


PropertyChange


Internet Explorer propertychange, DOM. , , setAttribute() . / , ES6 Proxy. DOM propertychange:

<div id="store"></div>

<script>
  function handler() {
    // A magic 'event' variable is passed into
    // the event handler function. When coming
    // from the 'propertychange' event, it comes
    // with a 'propertyName' property.

    if (event.propertyName === 'onpropertychange') {
      // Don't execute right at the beginning on itself
      return;
    }

    alert(
        event.propertyName +
        '\'s value was changed/set to "' +
        store[event.propertyName] +
        '"'
    );
  }

  store.onpropertychange = handler;

  store.test = true;
  store.test = false;
  store.literal = {};
  store.literal = {
    key: 'value2'
  };
</script>

DOM


Internet Explorer , , IE 9.

┬л onresize , CSS┬╗.

Resize Observer Mutation Observer. , , observer.

element.onresize = function(e) {
    /* React to the element's size change */
}

JavaScript


Internet Explorer , :

var script = document.createElement('script');
var head = document.getElementsByTagName('head')[0];

script.src = '...';
head.appendChild(script);

DOM. Internet Explorer : . .src, DOM. , , . , , Resource Hints.

Internet Explorer , defer.


- HTML5 document.currentScript, <script>. ? , , data-main:

<script src="scripts/require.js" data-main="js/main"></script>

- scripts/require.js :

var main = document.currentScript.getAttribute('data-main');

, Edge 12. , Internet Explorer , , , : .readyState.

function currentScript() {
  var scripts = document.getElementsByTagName('script');

  for (; i < scripts.length; i++) {
    // If ready state is interactive, return the script tag
    if (scripts[i].readyState === 'interactive') {
      return scripts[i];
    }
  }

  return null;
}

.readyState Internet Explorer 11, , .currentScript, .readyState ( , ).

IE?


, , Microsoft -. , , . XML. , , SVG? ES6? BEM? JSX? , .

, Microsoft, , , , . . CSS, . , JavaScript, JavaScript, , HTML, Default Behavior. VML.

. , MDN, Smashing Magazine, Codepen, Hackernoon, Dev.to, . Webmonkey. , , Microsoft . -, . , , A List Apart IRC- : Slack, .

Microsoft Internet Explorer 6 Internet Explorer Windows. Internet Explorer Windows. , Windows, Windows XP Longhorn ( Windows Vista), . , . Internet Explorer , . Microsoft , . W3C , , WHATWG, . Microsoft , .


: . Unsplash

Source: https://habr.com/ru/post/hi485892/


All Articles