Jika Anda lintas domain, cukup mengatur src kembali ke url yang sama tidak akan selalu memicu memuat ulang, bahkan jika hash lokasi berubah.
Mengalami masalah ini saat membuat iframe tombol Twitter secara manual, yang tidak akan menyegarkan ketika saya memperbarui url.
Tombol suka Twitter memiliki bentuk:
.../tweet_button.html#&_version=2&count=none&etc=...
Karena Twitter menggunakan fragmen dokumen untuk url, mengubah hash / fragmen tidak memuat ulang sumber, dan target tombol tidak mencerminkan konten baru saya yang dimuat ajax.
Anda dapat menambahkan parameter string kueri untuk memaksa memuat ulang (misalnya: "?_=" + Math.random()
tetapi itu akan membuang-buang bandwidth, terutama dalam contoh ini di mana pendekatan Twitter secara khusus mencoba mengaktifkan caching.
Untuk memuat ulang sesuatu yang hanya berubah dengan tag hash, Anda perlu menghapus elemen, atau mengubah src
, menunggu utas keluar, lalu tetapkan kembali. Jika halaman masih di-cache, ini seharusnya tidak memerlukan hit jaringan, tetapi memicu frame memuat ulang.
var old = iframe.src;
iframe.src = '';
setTimeout( function () {
iframe.src = old;
}, 0);
Pembaruan : Menggunakan pendekatan ini membuat item riwayat yang tidak diinginkan. Alih-alih, hapus dan buat ulang elemen iframe setiap kali, yang membuat tombol ini kembali () berfungsi seperti yang diharapkan. Senang juga tidak memiliki timer.