“Directives is a unique and powerful feature available only in Angular. Newspaper syntax, specific to your application. ”- I want to show that this is possible without angularjs.
<div id="mytemplate" hidden> <img src="logo.png"> <div class="comment"></div> </div>
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component); html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
.
2008 , . , handlebars.js mustache.js.
<script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"></div> </script>
/:
+ – , “display: none” .
+ – , .. JS, "text/javascript".
- – innerHtml. XSS .
:
1 – , DOM, ( getElementByID querySelector) . – . 2 – - JavaScript DOM addEventListener
- , .
- DOM . DOM – DOM. .
.. DOM , , , (, querySelectorAll(“component.name”) ).
( ) html , . . DOM innerHTML , DOM DOM.
:
javascript
component = { name: ..., template: ..., script: function (element, attrs) {….}, onattach: function (element) {….}, instantiate: true/false }
:
name – , html template – html (). script – ( element – , attrs – ). DOM onattach – DOM instantiate – . (element.component).
TagBuilder.register(component);
html ,
<accordion> <accordion-page header=”Header 1”> … </accordion-page> <accordion-page class="open" header=”Header 2”> … </accordion-page> ... </accordion>
w-component=”accordion” DOM( ).
DOM
TagBuilder.apply('component css selector or components wrapper');
html , TagBuilder.compile(string, options); , TagBuilder.apply('component css selector or components wrapper'); . (w-component=”name”) .
Source: https://habr.com/ru/post/171821/
All Articles