Buenas,
Haber si me pueden ayudar, estoy haciendo un editor, y este editor hace modificaciones en un iframe, el problema es que tengo un evento click en un boton que cuando guardo o hago alguna opcion recargo el iframe, todo bien , pero a partir de ahí todos los eventos se pierden, he probado miles de formas y he buscado en todos los idiomas, no encuentro la manera de enganchar de nuevo los enventos sin tener que recargar la pagina completamente. Voy a poner el codigo minimizado, para que se entienda.
$(document).on("ready",function() {
App.init();
});
$('iframe#myiframe').on("load",function(){
EditIframe.init();
});
var App = function(){
var iframe = $("iframe#myiframe").contents();
var newreload =false;
var reload= function(){
$("#reload").on("click",function(e) {
e.preventDefault();
App.reset();
App.init();
EditIframe.init();
return;
});
};
return{
init: function () {
sidebar();
reload();
widget();
},
frame:function(){
editHtml();
removeHtml();
addHtml();
this.hideloading();
},
reset:function(){
$(".frameWrapper .loading").show();
document.getElementById('myiframe').contentWindow.location.reload();
},
hideloading:function(){
$(".frameWrapper .loading").hide();
},
preparedIframe:function(){
$(".frameWrapper .loading").find("p.one").after("<p class='two'>Preparing html..</p>");
},
};
}();
var EditIframe=function(){
var iframe = $("#myiframe").contents();
var hoverElement=function(){
iframe.find("*").not("html,body").on("mouseover.selectElementBorder",function(e) {
e.preventDefault();
e.stopPropagation();
var el = $(this);
EditIframe.showLine(el);
}).on('mouseout', function(e) {
e.stopPropagation();
var el=$(this);
EditIframe.hideLine(el);
});
};
return {
init: function(){
hoverElement();
},
activate:function(){
this.init();
},
deactivate:function(){
iframe.find("*").off("click mouseout mouseover");
},
showLine: function(el){
el.css({'outline': '3px dashed #2c3e50', 'outline-offset': '-3px', 'cursor': 'pointer'});
},
};
}();
EN resumen tengo el boton con id reload, que al clickar se ejecuenta app.reset y esto genera la recarga del iframe, luego justamente intento añadir de nuevo los eventos App.init e EditIframe.Init para que vuelva enganchar, pero ni caso macho.
Tengo que estar fallando en alguna tonteria algo de concepto.
Espero puedan ayudarme.
Gracias.