Penyelesaian kepada pepijat paparan Iframe apabila Firefox kembali_Pertukaran pengalaman
<script type="text/javascript">//<![CDATA[ if(getCookie('firefoxIframe')){ document.write('<p id="addAd"><a href="cookie.html">点击这里删除这个iframe</a></p>'); document.write('<iframe height="120" width="300" marginheight="0" marginwidth="0" frameborder="0" src="nAdPre.swf"></iframe>'); }else{ document.write('<p id="addAd"><a href="cookie.html">点击这里增加一个iframe</a></p>'); } //]]></script>
Buka demo pepijat Memandangkan kuki tidak wujud, ketiga-tiga kilat yang dipaparkan semuanya dilaksanakan melalui Iframe
Klik "Klik di sini untuk menambah iklan iframe" dan lompat ke halaman baharu untuk menulis kuki bernama firefoxIframe
Klik "Kembali" atau butang kembali penyemak imbas untuk kembali ke halaman Demo Pepijat dan cari iframe The flash dalam adalah salah letak, iaitu, denyar pautan iframe pada kedudukan 2 tidak dimuatkan Denyar pada kedudukan 3 dipaparkan, dan denyar pada kedudukan 3 dipaparkan pada kedudukan 4, tetapi denyar pada kedudukan 4 masih wujud.
Tutup tab (bukan tutup keseluruhan penyemak imbas, jika anda menutup keseluruhan penyemak imbas, kuki juga akan menjadi tidak sah) atau buka tab baharu dan muat semula halaman, 4 Iframe akan memaparkan 4 kilat seperti biasa
Jika anda mengklik " "Klik di sini untuk memadamkan iklan iframe ini", lompat ke halaman baharu untuk memadamkan kuki dan kembali dan mendapati bahawa denyar dalam Iframe salah letak
Jika anda menulis kuki atau memadam kuki tanpa kembali melalui pelayar dan mengaksesnya terus melalui URL, ia tidak akan berfungsi
Analisis dan penyelesaian mudah
Nampaknya apabila Firefox kembali, Javascript dilaksanakan semula, tetapi Iframe tidak dimuat semula mengikut src atribut, tetapi Iframe dan src digandingkan dengan nombor yang serupa, dan kerana Pelaksanaan Javascript apabila mengembalikan menghasilkan satu lagi (atau kurang satu) Iframe, yang menyebabkan gandingan berikutnya menjadi tidak sejajar.
Yang di atas hanyalah spekulasi, tetapi ini sememangnya pepijat dalam Firefox (2.0.0.3 Javascript dilaksanakan semula apabila IE kembali, dan Iframe dimuat semula berdasarkan src apabila Opera kembali Halaman Tiada perubahan.
Penyelesaiannya ialah dengan menambah Iframe tersembunyi pada teks untuk menduduki ruang Ubah suai kod di atas seperti berikut:
document.write('<p id="addAd"><a href="cookie.html">点击这里增加一个iframe</a></p>'); //把上面的代码修改成为 document.write('<iframe src="#" style="display:none;"></iframe>'); document.write('<p id="addAd"><a href="cookie.html">点击这里增加一个iframe</a></p>');
Di atas ialah Iframe apabila. Firefox mengembalikan Penyelesaian untuk memaparkan kandungan pertukaran bug_Experience Untuk lebih banyak kandungan yang berkaitan, sila perhatikan tapak web PHP Cina (www.php.cn)!