Skip to content

load script for old browsers (experimental) #22

@virtualitems

Description

@virtualitems

function load(uri, names) {

if (!uri instanceof URL) {
throw new Error('uri must be an instance of URL');
}

if (!Array.isArray(names)) {
throw new Error('names must be an array');
}

const xhr = new XMLHttpRequest();
xhr.open('GET', uri, false);
xhr.send();

if (xhr.status !== 200) {
throw new Error('Error al cargar el script: ' + xhr.status);
}

let tail = '; ({ __esModule: true, ' + names.join(', ') + '});';
const code = xhr.responseText + tail;
const module = eval(code);
return module;
}

const m1 = load(new URL('https://unpkg.com/react@18/umd/react.development.js'), ['React']);
const m2 = load(new URL('https://unpkg.com/react-dom@18/umd/react-dom.development.js'), ['ReactDOM']);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions