В документации MDN говорится об экземпляре в нескольких кадрах:
Например, чтобы проверить, является ли узел SVGElement в другом контексте, вы можете использовать myNode экземпляр myNode.ownerDocument.defaultView.SVGElement.
Однако такие проверки не выполняются работает, когда элемент создается в родительском документе, а затем добавляется к документу внутреннего фрейма. Например:
const iframe = document.createElement('iframe');
document.body.append(iframe);
const div = document.createElement('div');
iframe.contentDocument.body.appendChild(div);
Теперь, если мы проверим экземпляр div div.ownerDocument.defaultView.HTMLDivElement, он выведет false.
В контексте контекстного сценария моего расширения Chrome я хочу иметь возможность проверить, является ли произвольно полученный Node элементом div. Я предпочитаю использовать instanceof, поскольку он автоматически улучшает проверку типов TypeScript. Мое расширение работает на всех веб-сайтах, поэтому я не могу запретить веб-сайтам следовать шаблону, подобному показанному выше.
Вопрос: Как определить функцию getWindow() (в примере ниже), чтобы она работала корректно для произвольных узлов (особенно в приведенном выше случае)?
if (node instanceof getWindow(node).HTMLTextAreaElement) {
// access node.value
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... ple-frames
Как заставить экземпляр работать в нескольких кадрах? ⇐ Javascript
Форум по Javascript
-
Anonymous
1765354636
Anonymous
В документации MDN говорится об экземпляре в нескольких кадрах:
Например, чтобы проверить, является ли узел SVGElement в другом контексте, вы можете использовать myNode экземпляр myNode.ownerDocument.defaultView.SVGElement.
Однако такие проверки не выполняются работает, когда элемент создается в родительском документе, а затем добавляется к документу внутреннего фрейма. Например:
const iframe = document.createElement('iframe');
document.body.append(iframe);
const div = document.createElement('div');
iframe.contentDocument.body.appendChild(div);
Теперь, если мы проверим экземпляр div div.ownerDocument.defaultView.HTMLDivElement, он выведет false.
В контексте контекстного сценария моего расширения Chrome я хочу иметь возможность проверить, является ли произвольно полученный Node элементом div. Я предпочитаю использовать instanceof, поскольку он автоматически улучшает проверку типов TypeScript. Мое расширение работает на всех веб-сайтах, поэтому я не могу запретить веб-сайтам следовать шаблону, подобному показанному выше.
[b]Вопрос:[/b] Как определить функцию getWindow() (в примере ниже), чтобы она работала корректно для произвольных узлов (особенно в приведенном выше случае)?
if (node instanceof getWindow(node).HTMLTextAreaElement) {
// access node.value
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79842684/how-to-make-instanceof-work-across-multiple-frames[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия