Google Chrome'da Koşullu ifadeler hata

6 Cevap php

Ben bazı PHP kod ile IE6 ve aşağıda hedefleyen bir koşullu deyimi kullandığınızda Google Chrome deyimi disregards ve kod ekler.

Örnek:

<!--[if lte IE 6]>
<?php require_once("ie6.php"); ?>
<![endif]-->

Zaten vücutta ie6.php içeriğini ekler.

Ie6.php kod böyle bir şey olur:

<?php print '<p>This is IE6</p>'; ?>

Herkes önce bu sorun var?

6 Cevap

Sorun ie6.php içinde html kodu içinde başka bir yorumdur ve Chrome gibi değildi oldu.

Böyle bir şey:

<?php print '<p>This is IE6 <!--a comment--> </p>'; ?>

Bu Chrome bitiş etiketi olarak açıklama kapanış etiketi yorumlama ve daha sonra koşullu deyimi "misreading" oldu gibi görünüyor.

PHP will print <!--[if lte IE 6]> then include the "ie6.php" file then print <![endif]--> because that's exactly what you're telling it to do.

Sen satır kod sunucu ve hangi tarayıcı tarafından ayrıştırılır tarafından işletilen hangi karıştırıyorsun.

Sadece IE tarayıcıları için hedeflenen çünkü krom <!--[if lte IE 6]> gibi çizgiler yok sayar.

PHP kodu önce yol eklenir deyimi hiç bu yüzden her zaman orada olacak kabul edilir.

  1. Sunucu sayfasını değerlendirir ve herhangi bir PHP kodu oluşturur
  2. Ie6.php içerikleri de dahil olmak üzere işlenmiş html, tarayıcıya gönderilen
  3. Tarayıcı lte IE 6 koşullu görür ve harekete geçer

Tarayıcılar koşullu ifadeler kullanmak tek şey vardır.

PHP sunucu üzerinde koştu ve ardından çıkan sayfa tarayıcıya gönderilen olduğundan, IE koşul çalışmıyor.

Bu php kodu (bakılmaksızın tarayıcı) sunucu tarafında, her zaman dahil olacak.

Bildiğim kadarıyla koşullu yorumlar istemci tarafında çalışır ve tarayıcı (ben ayrıntıları rememeber yok onlara saygı yok ama ben bile onları tamamen kesip, bu tarayıcı HTML yorumlarla istediğini yapabilir yerde okumak böylece insanların kim içine javascript koymak) sürpriz olabilir.

$ _SERVER ['HTTP_USER_AGENT'] veya get_browser() başlamak için iyi bir yer olurdu: Eğer dosya dahil ya da değil, bazı tarayıcı algılama kullanmaya karar istiyorsanız.

Ben krom ile benzer bir sorun vardı

<!--[if IE]>

   <!-- a comment about my code -->
   doIEstuff

<![endif]-->

Koşullu yorumun içindeki açıklama FF ve IE için iyiydi ama krom koşullu yorumun içindeki kod çalıştırmak yaptı