1
Firefox가 사용자 정의 요소에 대해 data-*
속성을 "삭제"하고 있다는 인상을 받았습니다.Firefox에서 폴리머 맞춤 구성 요소 데이터 세트가 비어 있습니다.
아래 스크립트는 기본 웹 구성 요소를 지원하는 Chrome에서 작동하지만 Firefox에서는 일단 내 click 이벤트 핸들러가 실행되면 데이터 세트가 비어있는 것처럼 보입니다.
document.addEventListener('DOMContentLoaded', function() {
var popups = document.querySelectorAll('iron-image[data-popup]');
for (var i=0; i < popups.length; i++) {
var img = popups[i];
console.log(img.dataset.popup); // <--- this works
img.addEventListener('click', function(ev) {
var app = document.querySelector('sh-app');
app.showPopup(ev.target.dataset.popup); // <-- This fails, dataset is empty
});
}
});
사이드 참고 : 나는 또한 WebComponentsReady
이벤트를 시도하지만 어떤 이유로 전혀 해고하지 않습니다.
이전에이 문제를 겪은 사람이 누구이며 그 원인을 알고 있습니까? Polymer (이 경우 <iron-image>
), Web Components polyfills 또는 Firefox 구현에 버그가 있습니까?
고마워요! 그건 완벽하게 작동합니다. 나는 문서에서 그 부분을 놓쳤을 것입니다. 아마도 한번만 읽었을 것입니다. 생각을 잊어 버렸습니다. 내가 할 때까지는 "아마도 그럴 필요가 없을 것입니다." – Andre
@andre 사이드 노트 btw 대신에 forEach를 사용해야합니다. 규칙적인 for 루프. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures#Creating_closures_in_loops_A_common_mistake –