Tôi đang làm việc trên một dự án yêu cầu tôi có thể lấy html từ trang và chèn nó vào trang web chính. Nó hoạt động hoàn toàn trong Chrome và Firefox, nhưng nó không thành công trong IE 9. Đây là một đoạn mã được cắt ra khỏi mã mà tôi sử dụng.Vấn đề IE9: Nút tùy chọn được tạo động (thông qua innerHTML) và các hộp kiểm không hoạt động
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); }
HTML được tiêm là
<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>
Thêm một số nút tùy chọn hơn.
Mọi thứ xuất hiện hoàn hảo, nhưng tôi không thể nhấp vào hộp kiểm hoặc các nút tùy chọn.
Chức năng changebuttons() của bạn làm gì? Điều này dường như là nguyên nhân có thể gây ra sự cố. Một điều cần kiểm tra là phiên bản jquery - đã có một số lỗi với IE9 và các phiên bản cũ hơn của jquery. – FluffyKitten
Lưu ý phụ - bạn không cần phải kết thúc 'changebuttons()' với một ';', vì bạn không làm bất cứ điều gì sau khi cá tuyết. chỉ là một mẹo, không có gì nghiêm trọng. – Ohgodwhy
Tôi đang sử dụng jquery 1.7.2. Tôi cũng chỉ thấy rằng sự kiện onclick đang hoạt động; hộp kiểm chỉ không thay đổi. Tôi đã bao gồm những điều sau đây vào đầu hàm changebuttons của tôi 'if (navigator.appName == 'Microsoft Internet Explorer') { document.getElementById ('Checkbox0'). Checked = 1 - document.getElementById ('Checkbox0').đã kiểm tra; } 'và nó hoạt động hoàn hảo. – Urza