Dojo 从嵌入的iframe从父HTML获取Dijit

Dojo 从嵌入的iframe从父HTML获取Dijit,dojo,dijit.calendar,Dojo,Dijit.calendar,我有一个使用dojo dijits构建的仪表板。其中一个dijit是dojo日历小部件。 在这个仪表板中,我嵌入了一个iframe。我想在iframe中更改日历小部件的值。 问题在于,它不仅涉及更改calendar dijit输入框中的文本值,还涉及调用on change事件。因此,我使用以下方法 dijit.byId('dijit_form_DateTextBox_1').set('value', datFrom); 通过这种方式更新值并触发更改事件 现在,由于我想在iframe中执行此操作

我有一个使用dojo dijits构建的仪表板。其中一个dijit是dojo日历小部件。 在这个仪表板中,我嵌入了一个iframe。我想在iframe中更改日历小部件的值。 问题在于,它不仅涉及更改calendar dijit输入框中的文本值,还涉及调用on change事件。因此,我使用以下方法

dijit.byId('dijit_form_DateTextBox_1').set('value', datFrom);
通过这种方式更新值并触发更改事件

现在,由于我想在iframe中执行此操作,我需要在父HTML页面中获取对日历dijit的引用。 如果这是一个简单的Javascript,我会使用下面的方法来访问DOM元素并更改值

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

但由于这是dojo,所以我无法将其作为dijit对象。有没有办法从父页面获取dijit,因为
dataTextBox
在iframe中,它在不同的范围内,看起来您没有在AMD模式中使用dojo

您可以做的是从iFrame的contentWidow中获取对象,并像任何其他函数一样调用
byID()
,例如

var _dijit = document.getElementById("iframeId").contentWindow.dijit;
var dateTextBox = _dijit.byId('dijit_form_DateTextBox_1');
dateTextBox.set('value', datFrom);
或者更好的方法是,您只需调用自己的函数的全局引用,而不是引用dijit