在我的ASP.NET应用程序中,我使用MasterPage和iFrame作为应用程序的内容部分(iFrame中还有一个侧边栏和菜单栏)。
我的目标是插入一个jQuery / javascript函数来拦截哪个<select>
元素在子iFrame中获得焦点。
MasterPage和iFrame都是同一个应用程序的一部分,iFrame不会打开外部页面,而是打开应用程序的.aspx页面,因此也是相同的域名。
但无论如何,“焦点”事件似乎无效,因为内部代码没有被执行。
这是功能:
$("#tabFrame").load(function() {
$("#tabFrame").contents().find("SELECT").focus(function() {
alert('focus on');
}).change(function() {
$.ajax({
type: "POST",
url: "../WebService/registerChanges",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({
controlName: dropDownId
}),
success: function(data) {
var result = JSON.parse(data.d);
if (result.Success) {
alert("Successfully found.");
}
}
})
})
})
由于函数本身是正确的,我想有一些问题试图从外部访问内部IFrame,但我无法弄清楚哪些。
有什么建议吗? (我使用IE8作为浏览器)
感谢。
答案 0 :(得分:0)
现在可行:
最初问题是由IFrame造成的,因为我在加载之前尝试访问它。使用 $(“#tabFrame”)。load()功能,可以在合适的时间访问它。
之后缺少jQuery引用(JSON)是问题的根源:( 但是后退一步,只是提醒而不是WebService调用,我可以管理它。
上面的代码是工作版本。