рд╣реИрд▓реЛ рдпрд╛рд░реЛ! рддреЛ, рдпрд╣рд╛рдБ рдореЗрд░реА рд╕реНрдерд┐рддрд┐ рд╣реИ: рдореЗрд░реЗ рдХреБрдЫ рдШрдЯрдХреЛрдВ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ preview-head.html
рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред
V5.0.1 рд╕реЗ рдкрд╣рд▓реЗ рдореЗрд░реЗ рдкрд╛рд╕ рдерд╛:
document.addEventListener("DOMContentLoaded", function(event) {
/* The stuff I needed to initialise */
}, false);
рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рдирд╣реАрдВ рд╣реИред
рдореИрдВ рдЖрдкрдХреЗ рд╕рднреА рдбреЙрдХреНрд╕ рдФрд░ рд╕реНрдЯреИрдХрдУрд╡рд░рдлрд╝реНрд▓реЛ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдХреЛрдИ рд╣рд▓ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рд╕реНрдЯреЛрд░реАрдмреБрдХ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХрд┐рд╕реА рднреА рд╕рд╣рд╛рдпрддрд╛ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред
рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, рд╣рд▓ рдХрд┐рдпрд╛
@ BennZ28 рдХреНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдерд╛?
@ рд╢реАрд▓рдореИрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рд╛рдордиреЗ рдмрд╣реБрдд рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рдж рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЧрд▓рдд рдерд╛ред
рддреЛ, рдХрд┐рд╕реА рднреА рдорджрдж рдХреА рдЕрднреА рднреА рд╕рд░рд╛рд╣рдирд╛ рдХреА!
рдЬрдм рднреА 'рдкреЗрдЬ' рдкрд░рд┐рд╡рд░реНрддрди, рд╡рд░реНрд╖ div#root
рдЕрдВрджрд░ рддрддреНрд╡ iframe
рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдирдпрд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреЗрдЬ рдХреЛ рдмрджрд▓рдиреЗ рдкрд░ рд╣рд░ рдмрд╛рд░ рдлрд╝рдВрдХреНрд╢рди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП MutationObserver
рд╕рд╛рде рдЗрд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдкрдиреЗ preview-head.html
, рдЖрдк рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
function runOnInit() {
console.log('Init')
}
function runOnPageChange() {
console.log('Page has changed!')
}
document.addEventListener('DOMContentLoaded', function() {
runOnInit();
const callback = function(mutationsList) {
for (let i = 0, len = mutationsList.length; i < len; i++) {
if (mutationsList[i].type == 'childList') {
runOnPageChange();
break;
}
}
};
const observer = new MutationObserver(callback);
const config = { childList: true, subtree: false };
observer.observe(document.getElementById('root'), config);
}, false);
рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ MutationObserver
рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреГрдкрдпрд╛ MDN рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦреЗрдВред
ЁЯЩП
@ BennZ28 рдХреНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдерд╛?
рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИ, рдХреНрдпреЛрдВ рд╕реНрдЯреЛрд░реАрдмреБрдХ рдХреЛ рдбреЛрдо рдЯреНрд░реА рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдХреЙрд▓рдмреИрдХ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИ, рдХреНрдпреЛрдВ рд╕реНрдЯреЛрд░реАрдмреБрдХ рдХреЛ рдбреЛрдо рдЯреНрд░реА рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдХреЙрд▓рдмреИрдХ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?