免责声明,我不知道 JQuery,所以可能有更简单的方法来做到这一点。我也没有测试任何代码......
如果您知道确切的 ID,那么您可以从父页面(在 javascript 块中)执行类似的操作:
var frame = document.getElementById('myIFrame');
var ctrl = frame.document.getElementById('myControl');
ctrl.value = "New Value";
如果您不知道CityX.aspx
页面中控件的确切 ID,那么您将需要一种方法来发现这些 ID,或者您需要遍历所有控件以iframe
查找正确的 ID。(我这样说是因为如果iframe
页面中的控件保存在任何类型的 ASP.NET 结构中,它们将不会被调用txtMyCtrl
(例如),但可能类似于ct00_txtMyCtrl
.)
如果您不知道确切的控件名称(因为我之前提到的 ASP.NET 结构),您可以执行以下操作:
var frame = document.getElementById('myIFrame');
var ctrls = frame.document.getElementByTagName("INPUT");
for(var i=0;i<ctrls.length;i++){
if(ctrls[i].getAttribute("type")=="hidden" && ctrls[i].id.indexOf("_myControl") != -1){
ctrls[i].value = "New Value";
break;
}
}
或者,如果您有能力更新CityX.aspx
页面,那么您可以在CityX.aspx
页面中包含以下内容:
function getCtrls(){
return [document.getElementById("<%=hiddenCtrl.ClientID%>"),
document.getElementById("<%=anotherHiddenCtrl.ClientID%>")];
}
...然后在您的父页面中,例如:
var frame = document.getElementById('myIFrame');
var ctrls = frame.document.getCtrls();
for(var i=0;i<ctrls.length;i++){
ctrls[i].value = "New Value";
}
它们只是关于一般主题的想法