Recommended
DOCX
ODP
PDF
PDF
PDF
TXT
PDF
Java Script - Object-Oriented Programming
PPTX
JS programowanie obiektowe
PDF
PDF
aggregation and indexing with suitable example using MongoDB.
PPTX
DOC
PDF
PDF
Node.js をさりげなく取り入れた 最近のフロントエンド事情について
PPTX
PDF
Collection pipeline par Mathieu Godart
PDF
Clase 10 electiva profesional 3 aws rds php y mysql
PPTX
DOCX
PDF
HTTP Interceptors com AngularJS
PDF
PPTX
React - podsumowanie z placu boju
PPT
KEY
PDF
Introduction to Service Worker
PDF
Aplicacion turbogenerador java
PDF
Working With Ajax Frameworks
DOCX
Memanggil prosedur sendiri dari program utama 1
PDF
PDF
Google Cloud Platform を支える技術 …のごく一部
More Related Content
DOCX
ODP
PDF
PDF
PDF
TXT
PDF
Java Script - Object-Oriented Programming
PPTX
JS programowanie obiektowe
What's hot
PDF
PDF
aggregation and indexing with suitable example using MongoDB.
PPTX
DOC
PDF
PDF
Node.js をさりげなく取り入れた 最近のフロントエンド事情について
PPTX
PDF
Collection pipeline par Mathieu Godart
PDF
Clase 10 electiva profesional 3 aws rds php y mysql
PPTX
DOCX
PDF
HTTP Interceptors com AngularJS
PDF
PPTX
React - podsumowanie z placu boju
PPT
KEY
PDF
Introduction to Service Worker
PDF
Aplicacion turbogenerador java
PDF
Working With Ajax Frameworks
DOCX
Memanggil prosedur sendiri dari program utama 1
More from Tomokazu Kiyohara
PDF
PDF
Google Cloud Platform を支える技術 …のごく一部
PDF
PDF
Web API をデバックするときに必要なたったひとつのこと
PDF
PDF
PDF
Text-Objects - vim's elegant function
PDF
LiveStyle for Vim - Quick start
PDF
PDF
PDF
対サイバー攻撃アラートシステム “DAEDALUS”(ダイダロス)の紹介
KEY
KEY
Compact Web - Remind "web compression" -
KEY
KEY
JavaScript Dynamic Loading 1. 3. 4. 5. 7. 8. 10. 12. 13. 14. 18. <html>
<body>
:
<script src=”jQuery.js”></script>
<script src=”jq-plugin-x.js”></script>
<script src=”jq-plugin-y.js”></script>
<script src=”prototype.js”></script>
<script src=”pt-plugin-x.js”></script>
<script src=”pt-plugin-y.js”></script>
<script src=”init-rendering.js”>
<script src=”facebook-plugin.js”>
<script src=”twitter-plugin.js”>
</body>
</html>
19. <html>
<head>
<script src=”loader.js”></script>
<script>
document.onload = function() {
/* do loading */
};
</script>
</head>
</html>
20. 21. XHR + eval
var xhrObj = new XMLHttpRequest();
xhrObj.onreadystatechange =
function() {
if ( xhrObj.readyState == 4 ) {
eval(xhrObj.responseText);
}
};
xhrObj.open('GET', 'A.js', true);
xhrObj.send('');
22. XHR + injection
var xhrObj = new XMLHttpRequest();
xhrObj.onreadystatechange =
function() {
if ( xhrObj.readyState == 4 ) {
var scriptElem = document.createElement('script');
var headElem = document.getElementsByTagName('head')[0];
headElem.appendChild(scriptElem);
scriptElem.text = xhrObj.responseText;
}
};
xhrObj.open('GET', 'A.js', true);
xhrObj.send('');
23. dom element
var scriptElem = document.createElement('script');
scriptElem.type= 'text/javascript';
scriptElem.src = 'http://anydomain.com/A.js';
var headElem = document.getElementsByTagName('head')[0];
headElem.appendChild(scriptElem);
24. dom element (not execute)
var scriptElem = document.createElement('script');
scriptElem.type= 'text/html';
scriptElem.src = 'http://anydomain.com/A.js';
var headElem = document.getElementsByTagName('head')[0];
headElem.appendChild(scriptElem);
27. XHR
var xhrObj = new XMLHttpRequest();
xhrObj.onreadystatechange =
function() {
if ( xhrObj.readyState == 4 ) {
/* eval or injection */
/* JavaScript onload */
}
};
xhrObj.open('GET', 'A.js', true);
xhrObj.send('');
28. dom element
var scriptElem = document.createElement('script');
scriptElem.src = 'http://anydomain.com/A.js';
scriptElem.onload = function() { /* JavaScript onload */ };
document.getElementsByTagName('head').appendChild(scriptElem);
29. with IE :)
var scriptElem = document.createElement('script');
scriptElem.src = 'http://anydomain.com/A.js';
scriptElem.onload = function() {
if ( !scriptElem.onloadDone ) {
scriptElem.onloadDone = true;
/* JavaScript onload */
}
};
scriptElem.onreadystatechange = function() { /* for IE */
if ( xhrObj.readyState == 4 || xhrObj.readyState == 2 ) {
if ( !scriptElem.onloadDone ) {
scriptElem.onloadDone = true;
/* JavaScript onload */
}
}
};
document.getElementsByTagName('head').appendChild(scriptElem);
31. 36. 37. 39. 41. 43. 44. 46. 50.