# elementor/3.8.0-beta1/app/assets/js/app-loader.js

Elementor Website Builder – more than just a page builder, version 3.8.0-beta1. 37 lines.

- Page: https://pluginprobe.com/plugins/elementor/3.8.0-beta1/code/app/assets/js/app-loader.js
- Raw: https://pluginprobe.com/plugins/elementor/3.8.0-beta1/raw/app/assets/js/app-loader.js
- Modified: 2022-09-19T16:26:20+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/elementor/3.8.0-beta1/code/app/assets/js/app-loader.js#L10-L20`.

```javascript
import Component from './loader/component';

class AppLoader {
	selector = 'a.elementor-app-link, .elementor-app-link .ab-item';

	constructor() {
		$e.components.register( new Component() );

		window.addEventListener( 'DOMContentLoaded', this.onLoad.bind( this ) );
	}

	onLoad() {
		const links = document.querySelectorAll( this.selector );

		if ( ! links.length ) {
			return;
		}

		links.forEach( ( link ) => {
			link.addEventListener( 'click', ( event ) => {
				event.preventDefault();
				$e.run( 'app/open', {
					url: link.href,
				} );
			} );

			link.addEventListener( 'mouseenter', () => {
				$e.run( 'app/load', {
					url: link.href,
				} );
			} );
		} );
	}
}

window.elementorAppLoader = new AppLoader();

```
