Jeśli chcę, aby właściwości obiektu javascript były niezmienne, mogę użyć metod Object, takich jak defineProperties()
, defineProperty()
i freeze()
. Moje pytanie brzmi: jak mogę zrobić to samo z atrybutami elementów HTML?Czy można uczynić atrybuty elementów HTML niezmiennymi?
Próbowałem już wyżej wymienionych metod i chociaż można ich użyć do zapobiegania ustawianiu właściwości elementu bezpośrednio (na przykład elem.id = 'foo';
), zgodnie z oczekiwaniami, podstawowe atrybuty można jeszcze zmienić za pomocą setAttribute()
.
Odpowiedź "nie, to niemożliwe" byłaby możliwa do zaakceptowania, ale nie spotkałem się jeszcze z ostatecznym oświadczeniem w tej sprawie.
do tej pory nie jest obsługiwany w javascript, ale może z ECMAScript 5 Biblioteka JavaScript może obsługiwać niezmienne właściwości. –
Można przedefiniować 'setAttribute()' na tym elemencie, aby po prostu rzucić błąd. To może zadziałać, chociaż tego nie próbowałem. – iamnotmaynard
@iamnotmaynard: Nadal można używać 'otherElement.setAttribute.call (thatElement, ...)' Jeśli ktoś jest wystarczająco zdeterminowany ...: p Jednak chroniłoby to przed zwykłymi błędami, nawet jeśli jest nieskuteczne wobec szkodliwych użytkowników. Zależy, czego naprawdę potrzebuje OP. – Amadan