TypeError: Попытка изменить настраиваемый атрибут не настраиваемого свойства src iframe - PullRequest
0 голосов
/ 07 мая 2018

Когда приведенный ниже код выполняется в chrome, firefox, ошибки не возникает. Но safari выдает TypeError: Попытка изменить настраиваемый атрибут не настраиваемого свойства. Я не понимаю, если src не поддается настройке, то почему не возникает ошибка для Chrome и Firefox.

Object.defineProperty(iframe, 'src', {
    writable: false, configurable: true
});

Safari Версия 11.0.1
PS - я знаю, что изменение существующего ненастраиваемого свойства выдает эту ошибку, но почему бы не Chrome и Firefox

1 Ответ

0 голосов
/ 07 мая 2018

Я не понимаю, если src не поддается настройке, тогда почему не возникает ошибка для chrome и firefox

Потому что разные браузеры реализуют DOM по-разному. Похоже, что Chrome и Firefox не помечают src как ненастраиваемые. Safari, очевидно, делает. Также обратите внимание, что в Chrome (по крайней мере) свойство src наследуется и имеет метод получения / установки, поэтому вызов defineProperty для экземпляра iframe создаст новое свойство для этого экземпляра, вместо того, чтобы изменять поведение ранее унаследованного от прототипа. (Я не проверял Firefox или Safari.)

Вам нужно будет по-другому решить ваши основные требования, если вы хотите быть совместимым с Safari.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...