Nếu bạn đã thử tất cả các đề xuất khác và không thể thực hiện bất kỳ đề xuất nào trong số chúng (như tôi không thể), thì đây là thứ bạn có thể thử có thể hữu ích.
HTML
<a class="refresh-this-frame" rel="#iframe-id-0">Refresh</a>
<iframe src="" id="iframe-id-0"></iframe>
Mã não
$('.refresh-this-frame').click(function() {
var thisIframe = $(this).attr('rel');
var currentState = $(thisIframe).attr('src');
function removeSrc() {
$(thisIframe).attr('src', '');
}
setTimeout (removeSrc, 100);
function replaceSrc() {
$(thisIframe).attr('src', currentState);
}
setTimeout (replaceSrc, 200);
});
Ban đầu, tôi bắt đầu thử và tiết kiệm thời gian với RWD và thử nghiệm trên nhiều trình duyệt. Tôi muốn tạo một trang nhanh chứa một loạt các iframe, được tổ chức thành các nhóm mà tôi sẽ hiển thị / ẩn theo ý muốn. Theo logic, bạn muốn có thể dễ dàng và nhanh chóng làm mới bất kỳ khung đã cho nào.
Tôi nên lưu ý rằng dự án tôi đang làm việc hiện tại, dự án đang sử dụng trên giường thử nghiệm này, là một trang web có một trang với các vị trí được lập chỉ mục (ví dụ: index.html # home). Điều đó có thể có liên quan đến lý do tại sao tôi không thể có bất kỳ giải pháp nào khác để làm mới khung cụ thể của mình.
Phải nói rằng, tôi biết đó không phải là thứ sạch nhất trên thế giới, nhưng nó hoạt động cho mục đích của tôi. Hy vọng điều này sẽ giúp được ai đó. Bây giờ nếu chỉ tôi có thể tìm ra cách giữ iframe cuộn trang mẹ mỗi lần có hoạt hình bên trong iframe ...
BIÊN TẬP:
Tôi nhận ra rằng điều này không "làm mới" iframe như tôi hy vọng nó sẽ xảy ra. Nó sẽ tải lại nguồn ban đầu của iframe. Vẫn không thể hiểu tại sao tôi không thể có bất kỳ tùy chọn nào khác để làm việc ..
CẬP NHẬT:
Lý do tôi không thể làm cho bất kỳ phương pháp nào khác hoạt động là vì tôi đã thử nghiệm chúng trong Chrome và Chrome sẽ không cho phép bạn truy cập nội dung của iframe (Giải thích: Có khả năng các bản phát hành hỗ trợ Chrome trong tương laiWindow / contentDocument khi iFrame tải tệp html cục bộ từ tệp html cục bộ? ) nếu nó không xuất phát từ cùng một vị trí (theo như tôi hiểu). Sau khi thử nghiệm thêm, tôi cũng không thể truy cập nội dungWindow trong FF.
SỬA ĐỔI
$('.refresh-this-frame').click(function() {
var targetID = $(this).attr('rel');
var targetSrc = $(targetID).attr('src');
var cleanID = targetID.replace("#","");
var chromeTest = ( navigator.userAgent.match(/Chrome/g) ? true : false );
var FFTest = ( navigator.userAgent.match(/Firefox/g) ? true : false );
if (chromeTest == true) {
function removeSrc() {
$(targetID).attr('src', '');
}
setTimeout (removeSrc, 100);
function replaceSrc() {
$(targetID).attr('src', targetSrc);
}
setTimeout (replaceSrc, 200);
}
if (FFTest == true) {
function removeSrc() {
$(targetID).attr('src', '');
}
setTimeout (removeSrc, 100);
function replaceSrc() {
$(targetID).attr('src', targetSrc);
}
setTimeout (replaceSrc, 200);
}
if (chromeTest == false && FFTest == false) {
var targetLoc = (document.getElementById(cleanID).contentWindow.location).toString();
function removeSrc() {
$(targetID).attr('src', '');
}
setTimeout (removeSrc, 100);
function replaceSrc2() {
$(targetID).attr('src', targetLoc);
}
setTimeout (replaceSrc2, 200);
}
});
src
thuộc tính cho chính nó không sạch? Nó dường như là giải pháp duy nhất hoạt động trên các trình duyệt và trên các miền