|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- "use strict";
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- const Event_1 = __importDefault(require("../../event/Event"));
- const ErrorEvent_1 = __importDefault(require("../../event/events/ErrorEvent"));
- const ResourceFetchHandler_1 = __importDefault(require("../../fetch/ResourceFetchHandler"));
- /**
- * Helper class for getting the URL relative to a Location object.
- */
- class ScriptUtility {
- /**
- * Returns a URL relative to the given Location object.
- *
- * @param options Options.
- * @param options.element Element.
- * @param element
- */
- static async loadExternalScript(element) {
- const src = element.getAttributeNS(null, 'src');
- const async = element.getAttributeNS(null, 'async') !== null;
- if (element.ownerDocument.defaultView.happyDOM.settings.disableJavaScriptFileLoading ||
- element.ownerDocument.defaultView.happyDOM.settings.disableJavaScriptEvaluation) {
- return;
- }
- if (async) {
- let code = null;
- element.ownerDocument._readyStateManager.startTask();
- try {
- code = await ResourceFetchHandler_1.default.fetch(element.ownerDocument, src);
- }
- catch (error) {
- element.dispatchEvent(new ErrorEvent_1.default('error', {
- message: error.message,
- error
- }));
- element.ownerDocument.defaultView.dispatchEvent(new ErrorEvent_1.default('error', {
- message: error.message,
- error
- }));
- if (!element['_listeners']['error'] &&
- !element.ownerDocument.defaultView['_listeners']['error']) {
- element.ownerDocument.defaultView.console.error(error);
- }
- }
- if (code) {
- element.ownerDocument.defaultView.eval(code);
- element.dispatchEvent(new Event_1.default('load'));
- }
- element.ownerDocument._readyStateManager.endTask();
- }
- else {
- let code = null;
- try {
- code = ResourceFetchHandler_1.default.fetchSync(element.ownerDocument, src);
- }
- catch (error) {
- element.dispatchEvent(new ErrorEvent_1.default('error', {
- message: error.message,
- error
- }));
- element.ownerDocument.defaultView.dispatchEvent(new ErrorEvent_1.default('error', {
- message: error.message,
- error
- }));
- if (!element['_listeners']['error'] &&
- !element.ownerDocument.defaultView['_listeners']['error']) {
- element.ownerDocument.defaultView.console.error(error);
- }
- }
- if (code) {
- element.ownerDocument.defaultView.eval(code);
- element.dispatchEvent(new Event_1.default('load'));
- }
- }
- }
- }
- exports.default = ScriptUtility;
- //# sourceMappingURL=ScriptUtility.js.map
|