2013-11-01 132 views
0

我才知道,jquery supports all including old browsersjQuery的跨瀏覽器支持問題

但我嘗試添加一個佔位符的搜索框,它不是在IE8

工作
jQuery(document).ready(function(){ 
    $('#search').attr('placeholder','search....');       
}); 

所以我想更多地瞭解跨瀏覽器支持。如所說的那樣,它實際上還是不工作?


我知道HTML屬性placeholder不支持。但我的問題是關於jQuery。

+0

IE8以下

<input type="text" value="search..." onfocus="if(this.value == 'search...') this.value = '';" onblur="if(this.value == '') this.value = 'search...';" /> 

??用火殺死它 !! :p – coolguy

+0

您似乎濫用佔位符屬性來替代'

+0

我似乎假設jquery使用自己的定義超出了html,但有這個問題來了解jquery只是解析dom ...... –

回答

1

由於不支持以上佔位符。
因此,將以下代碼/註釋添加到HTML頁面的頭部。現在ie8會很好地發揮。

<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> 
<!-- WARNING: Respond.js doesn't work if you view the page via file:// --> 
<!--[if lt IE 9]> 
    <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> 
<![endif]--> 
+0

什麼是HTML5 Shim和Respond.js?請簡要討論一下HTML5 Shim和Respond.js,以及何時需要這2個?謝謝 – Mou

2

佔位符是未通過IE8

使用支持的HTML5特徵使用jquery

<input type="text" class="my-input" value="" /> 

    <script type="text/javascript"> 

     $(document).ready(function() { 
      $('.my-input').val('search...'); 
      $('.my-input').focus(function() { 
       if (this.value == 'search...') this.value = ''; 
      }); 
      $('input.my-input').blur(function() { 
       if (this.value == '') this.value = 'search...' 
      }); 
     }); 
     /* 
     here I assumed a class 
     .my-input 

     you can use input#id or input.className or other selector 

     better you give the code of your text-box or entire form so that I can give you the exact selector 

     */ 
    </script> 
+0

我怎麼能做到這一點與jquery因爲我不能編輯標記 –