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ď č. 1Môž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.