Получить Dijit от Parent HTML из встроенного iframe - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть приборная панель, построенная с использованием додзё додзё. Одним из диджитов является виджет календаря додзё. В эту панель я встраиваю iframe. Я хочу изменить значение виджета календаря из iframe. Проблема заключается в том, что речь идет не только об изменении значения текста в поле ввода календаря dijit, но и о вызове события on change. Поэтому я использую следующее

dijit.byId('dijit_form_DateTextBox_1').set('value', datFrom);

. Таким образом, значение обновляется, а также происходит событие изменения.

Теперь, поскольку я хочу сделать это изнутри iframe, мне нужно получить ссылку на календарь dijit на родительской странице HTML. Если это простой Javascript, я бы использовал следующее, чтобы добраться до этого DOM-элемента и изменить его значение.

const targetNode = $('#'+divId, window.parent.document)[0];

Но так как это dojo, я не могу получить его как объект dijit. Есть ли способ получить dijit со страницы родителей

1 Ответ

1 голос
/ 28 апреля 2020

Поскольку dataTextBox находится внутри iframe, он находится в другой области и выглядит так, как будто вы не используете dojo в паттерне AMD.

Что вы можете сделать, это получить объект из содержимого iFrame contentWidow и вызвать byID() Как и любая другая функция, например

var _dijit = document.getElementById("iframeId").contentWindow.dijit;
var dateTextBox = _dijit.byId('dijit_form_DateTextBox_1');
dateTextBox.set('value', datFrom);

или лучше, вы просто вызываете глобальную ссылку своей собственной функцией, а не используете ссылку на dijit.

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