2014-12-20 56 views
1

HTML的inputtextarea元素的佔位符屬性非常好,但它不適用於IE8或IE9。所以,我正在尋找一種方法來設置值屬性,只有當用戶從IE8或IE9瀏覽。HTML輸入和textarea元素的條件值(如果IE8/IE9)

我已經試過這樣的事情:

<textarea name="comment" placeholder="Message"><!--[if lte IE 9]>Message<![endif]--> 
</textarea> 

但整個 「... - [如果LTE IE 9]> ...!」 字符串在textarea的輸出,無論瀏覽器。 (我不想在IE8/9中重新創建佔位符效果,只需設置該值。)

感謝您的閱讀!

回答

2

嘗試這種類型的組合來代替:

<!--[if lte IE 9]><textarea name="comment">Message</textarea><![endif]--> 
<!--[if !IE]> --><textarea name="comment" placeholder="Message"></textarea><!-- <![endif]--> 

只有其中一人將出現在兩種情況下。

+0

感謝您的回覆,這看起來不錯。我想知道,如果用戶從IE 10抵達會發生什麼情況。那麼這兩種情況都不會是錯誤的嗎? – Rogare

+0

不,即10和更新不使用條件註釋,所以你很好。只有IE5.5-9使用'if not ie'的東西。 –

+0

啊,好的,所以[if!IE]的意思就是[if!IE5.5-9]。感謝您的解釋。 – Rogare

3

不是每次要使用佔位符時都要編寫額外的標記,而是在瀏覽器本身不支持屬性/屬性的情況下執行功能檢測測試並應用polyfill要好得多。這些類型的功能測試並不難創作之一:

"placeholder" in document.createElement("textarea"); 

如果這個表達式true你有沒有額外的工作來執行—瀏覽器支持的屬性。如果表達式的計算結果爲false,那麼您知道需要擴展原型以添加支持,或者加載一個爲您完成此工作的填充。

粗略搜索網絡上顯示Placeholder.js,應該只需要一個腳本引用。

<textarea placeholder="That's it, done."></textarea> 
<script src="assets/js/placeholders.min.js"></script> 

從那裏,它似乎還可以創作更精細的指令在該類型的場景應該得到支持,但是這是沒有必要的基本支持。

相關問題