Привязка CSS работает нормально:
var viewmodel = function(){
var self = this;
this.gThirdCheckboxEnabled = ko.observable(false);
this.change = function(){
self.gThirdCheckboxEnabled(!self.gThirdCheckboxEnabled());
};
};
ko.applyBindings(new viewmodel());
.chkBxEdit{
background-color: blue;
}
.chkBx{
background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<input data-bind="css: { 'chkBxEdit': gThirdCheckboxEnabled(), 'chkBx': !gThirdCheckboxEnabled() }" />
<button data-bind="click: change">Change</button>
Да, ко всему вышесказанному. Инъекция произвольного CSS может привести к выполнению JavaScript. Посмотрите:
Худшее, что может случиться, зависит от окружающей среды. В некоторых случаях кража файла cookie сеанса и доступ к сеансу пользователя может быть самым плохим случаем (например, банки, онлайн-торговля акциями), это может быть не так в вашей ситуации. Другими примерами атак могут стать получение контроля над браузером, получение доступа к компьютеру клиента и т. Д.