我有两页,让我们说ParentPage.aspx和ChildPage.aspx。在ParentPage.aspx中我有一个hiddenField,我们称之为hidField1
。
<input type="hidden" name="hidField1" id="hidField1" value="0" runat="server" />
然后我使用ParentPage.aspx中的以下函数打开Childpage。
function myFunc(){
var url = "ChildPage.aspx";
window.open(url,'_blank');
}
然后在父页面中进行一些处理后,hideField1
值从0变为1.
我需要能够从ChildPage.aspx跟踪这个。目前我正在运行一个setInterval
函数,其中1000ms设置为$(document).ready(function () {...});
内的间隔,以下是我到目前为止的内容
setInterval(function () {
var hideField1= $("#hideField1", window.opener.document).val();
if (hideField1 == "1") {
console.log("change detected now reset from child!!!");
$("#hideField1", window.opener.document).val("0");
}
}, 1000);
这可以按预期工作,当父页面发生更改时,我可以从子页面看到,也可以从子页面更改父页面的隐藏字段值。但这意味着此setInterval函数将每秒运行一次,以便检测此更改。
如何使用jQuery
执行此操作,而无需使用setInterval函数。非常感谢任何帮助。
答案 0 :(得分:2)
使用事件监听器,您可以通过执行以下操作在jQuery中完成此操作; https://jsfiddle.net/w2kLto71/
const hidden = $('#hidden');
hidden.on('change', function(e) {
const target = $(e.target); // if you need jquery, if not e.target.value
alert(target.val());
// conditional
})