Tengo un formulario de Adobe Sign que se abre en un iframe. Al hacer clic en un botón con el nombre de clase "aceptar los términos" dentro del formulario de Adobe Sign, quiero cambiar el comportamiento del botón "Enviar" que se encuentra en la página web. Así que básicamente tengo 2 botones de radio y el botón Enviar (que está inicialmente deshabilitado) en la página web. Al seleccionar el botón de radio "sí", se abre el iframe que tiene un formulario de Adobe Sign incrustado. Quiero habilitar el botón Enviar al hacer clic en un botón con el nombre de clase "aceptar los términos" en forma de signo de adobe.
Esto es lo que he intentado
function ideaform() { document.getElementById("myiframe").src = "adobe sign url"; $("#myiframe_forms").show(); $("#myfetching_form").show(); $('#idea_sbmt').css({ 'background-color': '#0071ce', 'pointer-events': 'auto', 'border': '1px solid #0071ce', 'color': 'white' }); setTimeout(function() { $("#myfetching_form").hide(); }, 3000); //I tried both the ways 1) $("#myiframe").load(function() { $("#myiframe").contents().on("click", ".agree-to-terms", function() { console.log("inside frame loaddddd") }); }); 2) $(document).ready(function() { console.log("insideeeeeeee frameee") $("#myiframe").contents(".agree-to-terms").click((functionToRun)); }); function functionToRun() { console.log("alllllllllleeerrrrrrtttttttt") } <div id="submit-cont" style="display: flex; justify-content: space-between;"> <div> <input type="radio" id="yes" name="yesno" value="yes" onchange="ideaform()"> <label for="yes">I understand. Take me to the agreement to review and sign if I agree.</label><br><br> <input type="radio" id="no" name="yesno" value="no" onchange="noideaform()"> <label for="no">No thank you. Let me think about it some more.</label><br> </div> <div> <button id="idea_sbmt" onclick="showIdeaSubmission()">Submit</button> </div> </div> <div id="myiframe_forms"> <div class="banner"> <div id="myDiv" class="img-wrapper"> <p class="close_button" onclick="dismiss_iframe_forms()"><b>Close</b></p> <h1 id="myfetching_form" style="margin-top: 150px; color:#0071ce;"><b>Fetching your form...</b> </h1> <iframe id="myiframe" src=""></iframe> </div> </div> </div>No puede acceder al iframe DOM si el contenido es de un dominio diferente (acceso entre dominios).
Solo hay información limitada disponible cuando el usuario interactúa con el iframe. Por ejemplo, aquí puede ver cómo detectar un clic en el iframe (sin saber exactamente dónde hizo clic el usuario): https://jsfiddle.net/oqjgzsm0/
var monitor = setInterval(function(){ var elem = document.activeElement; if(elem && elem.tagName == 'IFRAME'){ message.innerHTML = 'Clicked'; clearInterval(monitor); } }, 100);Lea también: Detectar clic en iframe usando JavaScript