/ / Ist es möglich, requir.js auf einer dynamisch erstellten Seite mit iframe zu verwenden? - Javascript, iframe, requiredjs

Ist es möglich, requir.js auf einer dynamisch erstellten Seite mit iframe zu verwenden? - Javascript, iframe, requiredjs

Also arbeite ich mit einem iframe auf der Seitedynamisch mit jQuery-Elementen erstellt. Ich möchte mehrere externe Javascript-Dateien in einer bestimmten Reihenfolge in diesem iFrame laden. Ist es möglich, requir.js in diesen iFrame zu laden und dann die externen js-Dateien über den js-Code zu laden?

Antworten:

0 für die Antwort № 1

Ich habe ein paar Tests gemacht und habe es schließlich so gemacht:

Iframe head auswählen

$iframe = $("#target"),
$head = $iframe.contents().find("head");

Fügen Sie "iframe" hinzu

$head.append($("<script>", {src: "/path_to/require.js"}));

Aus irgendeinem Grund data-main Attribut wurde ignoriert, also musste ich die Config selbst einschalten

var startRequire = (function() {/**
requirejs.config({
"baseUrl": "/your/path",
//more config
});
// Load the main app module to start the app
requirejs(["/your/path/main.js"]);
**/})
.toString().split("n").slice(1, -1).join("n"); //this hack is here just so I don"t keep adding plusses and """, configs can get complex
$head.append($("<script>").html(startRequire))

Beachten Sie, dass beim Hinzufügen von .js von übergeordnetem zu iFrame der aktuelle Gültigkeitsbereich der geladenen Skripts weiterhin das übergeordnete Element ist, wenn Sie also jQuery in verwenden main.js Sie müssten den Geltungsbereich angeben:

var iframe = $("#target")[0].contentWindow.document; //iframe
$(".selected", iframe); //look for element with class selected within the iframe