Перевод JS-скрипта внутри компонента Angular

У меня есть следующий простой скрипт из моего исходного приложения, и, поскольку я перешел на Angular, я хотел бы, чтобы он работал и там.

Оригинальный скрипт (date.js):

window.onload = (function() {
    var map = document.getElementById('map').contentDocument;

    var today = new Date();
    var date = today.toDateString();
    var textBox = map.getElementById('date');
    var textWrite = map.createTextNode(date);
    textBox.appendChild(textWrite);
});

Теперь в Angular я пытаюсь получить доступ к элементу, но он возвращает null. Это компонент HTML:

<object class = "mapCanvas" data = "assets/canvas/map.svg" type = "image/svg+xml" #map>Browser
  doesn't support SVG</object>

И в component.ts:

  @ViewChild('map', {read: ElementRef}) map: ElementRef;

  constructor() { }

  ngAfterViewInit(): void {
    console.info(this.map.nativeElement.contentDocument);
  }

Как я могу получить доступ к содержимому элемента DOM (объекта) и заставить скрипт работать?

Можете ли вы привести пример Stackblitz?

Prashant Pimpale 25.03.2019 12:39

Пожалуйста, включите свой html для этого компонента. Просто машинопись не дает достаточно информации, так как вы пытаетесь получить доступ к DOM

penleychan 25.03.2019 12:41

Теперь он включен :)

EMichael 25.03.2019 12:46

Ваш код подходит для получения элемента из шаблона?

David 25.03.2019 12:52

Уверен, что contentDocument предназначен для iframe? Не видите iframe в вашем html

penleychan 25.03.2019 12:56

contentDocument предназначен для объекта. Скрипт отлично работает вне Angular, с чистой реализацией HTML/JS.

EMichael 25.03.2019 13:02
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
37
0

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