/ / Ako spustiť dynamicky načítaný súbor js v iframe? - jquery, iframe

Ako spustiť dynamicky načítaný súbor js v iframe? - jquery, iframe

Mám nasledovné:

$(document).ready(function() {

var myIframe = document.getElementById("myIframe");
var element = myIframe.contentDocument.createElement("script");
element.setAttribute("src", "/javascripts/library/jquery/jquery.min.js");
myIframe.contentWindow.document.getElementsByTagName("head")[0].appendChild(element);

$("#myIframe", top.document).load(function() {
alert("iframe has loaded");

var element = document.getElementById("myIframe").contentDocument.createElement("script");
element.setAttribute("src", "/javascripts/stuff.js");
myIframe.contentWindow.document.getElementsByTagName("body")[0].appendChild(element);
});

});

Dostávam upozornenie na otázku, či bol načtený iframe.

stuff.js obsahuje

$("body").css("backgroundColor", "yellow");

Takže by som očakával, že zázemie iframefarba by sa zmenila na žltú, keď sa vložil iframe ... ale nič sa nestane. Dokonca som sa snažil obklopiť to, čo je v stuff.js v bloku $ (document) .ready, ale malo rovnaké výsledky.

Ak vyberiem všetky a zobrazím zdroj pre rámček iframe, Ipozrite sa, že jquery.min.js a stuff.js sú v iframe "s. Ak som dal tento zdroj výstup do samostatného html súboru a beh, farba dokumentu na pozadí sa mení podľa očakávania.

Ako môžem získať svoj javascript v cheats.js spustiť v iframe po načítaní iframe?

odpovede:

1 pre odpoveď č. 1

Môžete to urobiť aj spôsobom jQuery.

$("<script/>", {
src: "/path/to/javascript.js",
type: "text/javascript"
}).appendTo($("#iframe").contents().find("body"));

0 pre odpoveď č. 2

Hej, ja som to pochopil!

Ukázalo sa, že to nefunguje, pretože som nastavil myIframe.contentDocument.designMode na "on". Pripomíname, že to fungovalo. Dúfajme, že ho môžem zapnúť po tom, čo stuff.js naloží a všetko bude dobre.