Разница в поведении при выборе неопределенного флажка в HTML

ОБНОВЛЕНИЕ: это не дубликат этот вопрос. Связанный вопрос не имеет правильных ответов, даже не дав мне времени найти его и опубликовать здесь. Поэтому, если вас интересует ответ, проверьте тот, который я разместил в «дублирующемся» вопросе https://stackoverflow.com/a/19447939/1010492.


Я пытаюсь отобразить флажок с «неопределенным» состоянием, который становится отмеченным при нажатии на него.

Для этого я инициализирую флажок в JavaScript следующим образом:

checkbox.checked = false;
checkbox.indeterminate = true;

В Chrome и Firefox флажок будет установлен после нажатия на него (это желаемое поведение). В Internet Explorer он станет неотмеченным.

Однако, если я инициализирую флажок checked = true, можно наблюдать прямо противоположное поведение.

Я изо всех сил пытаюсь найти решение для инициализации флажка до правильного значения, чтобы он вел себя так, как хотелось бы. Я не смог найти удовлетворительное решение в stackoverflow. Я не хочу использовать графическое решение (мне нужен внешний вид и поведение родного браузера), и я не слишком заинтересован в том, чтобы возиться с событиями mousedown и click...

Какой лучший подход вы можете предложить? Я не слишком заинтересован в использовании обнаружения пользовательского агента, так как скоро появится IE11, но действительно ли есть выбор?


person Gyum Fox    schedule 17.10.2013    source источник
comment
пробовал использовать jquery? Это может помочь   -  person Akshay Khandelwal    schedule 17.10.2013
comment
@AkshayKhandelwal jQuery это JavaScript!   -  person ComFreek    schedule 17.10.2013
comment
да, и это позаботится о большинстве ваших кросс-браузерных операторов, которые вам могут понадобиться   -  person Akshay Khandelwal    schedule 17.10.2013
comment
Ответ возможного дубликата - использовать изображение... Бесполезно. Мое требование - сохранить естественный вид и поведение изображений. Я бы предпочел использовать обнаружение пользовательского агента, чем это. @ComFreek: спасибо, мой друг, люди, кажется, забывают об этом :)   -  person Gyum Fox    schedule 18.10.2013
comment
@GyumFox Вот решение, которое для меня работает в IE 11 и Chrome 31: jsfiddle.net/fnf5A/1 Помимо голосования за повторное открытие вашего вопроса, я также удалил оскорбительную часть вашего отредактированного вопроса.   -  person ComFreek    schedule 18.10.2013
comment
@ComFreek Спасибо, что попробовали. Это не работает в IE10, флажок снимается (думаю, они изменили поведение в IE11...). Я достаточно доволен методом обнаружения функций, который я предложил в повторяющемся вопросе, он также имеет то преимущество, что не мешает нормальному поведению браузера.   -  person Gyum Fox    schedule 18.10.2013