A library for tracking and reinitializing link-elements and script-elements so that the browser downloads them. Used when developing any dynamic requests via JS where links to third-party documents are supplied along with HTML content.
Go to file
Arsen Mirzaev Tatyano-Muradovich b3742cf61f added "Arguments" 2023-10-07 23:50:59 +07:00
.editorconfig tab_width = 2 2023-10-06 19:42:24 +07:00
LICENSE Initial commit 2023-10-02 18:51:40 +07:00
README.md added "Arguments" 2023-10-07 23:50:59 +07:00
reinitializer.js The argument for preventing downloading 2023-10-06 19:16:58 +07:00

reinitializer.js

If you use AJAX technology, you probably noticed that by passing HTML-code and writing it into a document (for example, via element.outherHTML = someHTML), browsers does not perform semantic analysis and does not download documents connected using <link> and <script> elements.

This program observed <link> and <script> elements, and recreates them in the right places so that the browser recognizes and downloads them.

Instruction

By default, observation occurs on the first <main> element, but you can change this behavior by passing the first argument in {HTMLElement} format to new e.detail.reinitializer()

document.addEventListener('reinitializer.initialized', function (e) {
	// Initialized reinitializer

	// Initialize of instance of reinitializer
	const reinitializer = new e.detail.reinitializer();
	
	// First reinitialization with prevented downloading
	reinitializer.handle(false);

	// Start observation
	reinitializer.start();
});

By default, after reinitialization, <link> elements are moved to the end of the <head> element, and <script> elements are moved to the end of the <body> element. You can override this behavior by changing the reinitializer.js and reinitializer.css properties.

Arguments

  1. data-reinitializer-ignore="true" - The program will ignore this element
  2. data-reinitializer-once="true" - The program will trigger the download only if there is no duplicate in the registry