JSFiddle - React, Tailwind, and code Playground
by masbicudo
HTML
<iframe id="frame" width="300" height="300"></iframe>
<div id="output">Resultado:<br/></div>
JavaScript
$(function(){
var createScript = function(url){
var s = document.createElement("script");
s.type = "text/javascript";
s.src = url;
return s;
};
//colocando jquery no iframe
$("#frame").contents().find("body").append( createScript("https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js") ); //adicionando jquery
var iframeWindow = $("#frame").get(0);
var items = {};
debugger;
find(iframeWindow, [], {stop:false, cnt:0, items: items});
// localizando as instâncias do jQuery
var el = document.getElementById("output");
el.innerHTML += (items.$.join("<br/>"));
el.innerHTML += (items.jQuery.join("<br/>"));
debugger;
// iframeWindow.ownerDocument.defaultView NÃO É PARTE DO IFRAME
el.innerHTML += ("<br/>"+"<br/>");
el.innerHTML += (iframeWindow.ownerDocument.defaultView.$);
el.innerHTML += ("<br/>"+"<br/>");
el.innerHTML += (iframeWindow.ownerDocument.defaultView.$ === $);
// iframeWindow.contentWindow É PARTE DO IFRAME
el.innerHTML += ("<br/>"+"<br/>");
el.innerHTML += (iframeWindow.contentWindow.$);
// iframeWindow.contentDocument É PARTE DO IFRAME
el.innerHTML += ("<br/>"+"<br/>");
el.innerHTML += (iframeWindow.contentDocument.window.$);
});
function find(obj, path, opts)
{
if (path.length < 4 && opts.stop==false)
{
try{
for(var k in obj) {
if (opts.stop)
return;
path.push(k);
try{
{
if (!opts.items[k]) opts.items[k] = [];
opts.items[k].push(path.join('.'));
if (typeof obj[k] != 'string')
find(obj[k], path, opts);
}
}
catch(x){
console.error(x);
}
finally{
path.pop();
}
...