我引用了here,但是那里提供的解决方案对我不起作用,所以我发布了类似的问题。
我有一个父网页,其中有一个隐藏字段,如下所示:
<input type="hidden" name="reloadCalPreview" id="reloadCalPreview" value="0" runat="server" />
然后我在$(document).ready(function(){}}...
创建了触发器,如下所示:
$("#reloadCalPreview").on('reload-change', function () {
console.log('reload-change event triggered.');
var reloadCalPreview = $("#reloadCalPreview").val();
if (reloadCalPreview == "1") {
GetUserCalPreview();
$("#reloadCalPreview").val("0");
}
});
因此,一旦隐藏字段发生变化,就应该触发。
然后我有两种情况:
对于方案1,我使用以下代码来触发reload-calendar
事件:
function appAdded(){
$("#resetCalendarRequired").val("1").trigger("reload-change");
}
按预期方式触发reload-change
事件。
因此,对于方案2,在子页面中有一个函数调用,如下所示:
function manageEvent() {
var reloadCalPreview = $("#reloadCalPreview", window.parent.document);
reloadCalPreview.val("1").trigger("reload-change");
}
但这并没有触发重新加载。
非常感谢任何帮助!
答案 0 :(得分:0)
function manageEvent() {
var reloadCalPreview = window.parent.document.getElementById('reloadCalPreview');
// debug purpose, to make sure that the element is accessible
console.log("reloadCalPreview: " + reloadCalPreview);
// invoking the event
$(reloadCalPreview).val("1").trigger("reload-change");
}