Estoy trabajando en un proyecto que requiere que pueda extraer html de una página e insertarlo en la página web principal. Funciona totalmente en Chrome y Firefox, pero falla en IE 9. Aquí hay un corte del código que uso.IE9 Problema: Los botones de opción creados dinámicamente (a través de innerHTML) y las casillas de verificación no funcionan
if (!element.data('cache')) { $('#contentHolder').html('<img src="ajax_preloader.gif" width="64" height="64" class="preloader" />'); $.get(element.data('page'), function (msg) { $('#contentHolder').html(msg); /* After page was received, add it to the cache for the current hyperlink: */ element.data('cache', msg); setTimeout("checkonbox()", 100); }); } else { $('#contentHolder').html(element.data('cache')); setTimeout("checkonbox()", 100); }
El código HTML que se inyecta es
<table style="width:400px; height: 388px; text-align: left;" align="left">
<tr>
<td><input id="Checkbox0" type="checkbox" onclick="changebuttons();" checked="true">
Exclusive.</input></td>
</tr>
</table>
Además de algunos más botones de opción.
Todo parece perfectamente, pero no puedo hacer clic en la casilla de verificación o en los botones de opción.
¿Qué hace su función changebuttons()? Esta parece ser la causa más probable del problema. Otra cosa para comprobar es la versión de jquery: ha habido algunos errores con IE9 y versiones anteriores de jquery. – FluffyKitten
Nota al margen: no es necesario que finalices 'changebuttons()' con un ';', ya que no estás haciendo nada después del bacalao. solo un consejo, nada serio. – Ohgodwhy
Estoy usando jquery 1.7.2. También descubrí que el evento onclick está funcionando; la casilla de verificación simplemente no cambia. He incluido lo siguiente en la parte superior de la función de mis botones de cambio 'if (navigator.appName == 'Microsoft Internet Explorer') { document.getElementById ('Checkbox0'). Checked = 1 - document.getElementById ('Checkbox0').comprobado; } 'y funciona perfectamente. – Urza