Penyelesaian kepada pepijat paparan Iframe apabila Firefox returns_Experience exchange

PHP中文网
Lepaskan: 2016-05-16 12:06:00
asal
1948 orang telah melayarinya

Penyelesaian kepada pepijat paparan Iframe apabila Firefox kembali_Pertukaran pengalaman

<script type="text/javascript">//<![CDATA[ 
if(getCookie(&#39;firefoxIframe&#39;)){ 
document.write(&#39;<p id="addAd"><a href="cookie.html">点击这里删除这个iframe</a></p>&#39;); 
document.write(&#39;<iframe height="120" width="300" marginheight="0" marginwidth="0" 
frameborder="0" src="nAdPre.swf"></iframe>&#39;); 
}else{ 
document.write(&#39;<p id="addAd"><a href="cookie.html">点击这里增加一个iframe</a></p>&#39;); 
} 
//]]></script>
Salin selepas log masuk

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(&#39;<p id="addAd"><a href="cookie.html">点击这里增加一个iframe</a></p>&#39;); 
//把上面的代码修改成为 
document.write(&#39;<iframe src="#" style="display:none;"></iframe>&#39;); 
document.write(&#39;<p id="addAd"><a href="cookie.html">点击这里增加一个iframe</a></p>&#39;);
Salin selepas log masuk

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)!


Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan