Пользовательский атрибут данных "data-watch" имеет странное поведение в Firefox
Я делал относительно гибкую систему, требующую прослушивания данных полей формы на их onchange
событие и решил указать, какие элементы должны быть прослушаны в HTML через пользовательский атрибут данных, содержащий селектор CSS, указывающий на указанные элементы. Я решил назвать этот атрибут data-watch
,
Поскольку я работаю в Chromium, все шло хорошо, но когда я тестировал свою работу в Firefox, этого уже не было. Я заметил, что это демонстрирует странное поведение, так как другие пользовательские атрибуты данных обрабатывались очень хорошо, один из них data-watch
был как-то обработан по-другому:
Значение, возвращаемое при вызове myElement.dataset
было следующим (тест на about:blank
страницы):
- Chrome ->
DOMStringMap {custom: "blabla", watch: "myField"}
- Firefox ->
DOMStringMap {custom: "blabla", watch: function ()}
Поэтому мне кажется, что Firefox уделяет особое внимание атрибуту data-watch
, Следовательно, мой вопрос в первую очередь, прав ли я в своих предположениях, и если да, то есть ли у Firefox веская причина для этого (и если да, то почему другие браузеры не делают то же самое?) Или если это так? это ошибка, так как, насколько я понимаю, пользовательские атрибуты данных должны быть полностью оставлены на усмотрение разработчиков.
Вот фрагмент, который я сделал, чтобы вы могли легко представить проблему. Как вы можете видеть, реальное заключается в его последствиях, так как набор данных, созданный JQuery, является неполным из-за поведения Firefox.
var vanilla = document.querySelector('#myDiv').dataset;
console.log("Vanilla: ", vanilla);
var jquery = $('#myDiv').data();
console.log("JQuery: ", jquery);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="myDiv" data-custom="blabla" data-watch="myField"></div>
Check your console.