Пользовательский атрибут данных "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.

0 ответов

Другие вопросы по тегам