从母版页(在同一域中)访问子iFrame中的<select> </select>

时间:2011-05-10 06:41:35

标签: jquery asp.net iframe

在我的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作为浏览器)

感谢。

1 个答案:

答案 0 :(得分:0)

现在可行:

  • 最初问题是由IFrame造成的,因为我在加载之前尝试访问它。使用 $(“#tabFrame”)。load()功能,可以在合适的时间访问它。

  • 之后缺少jQuery引用(JSON)是问题的根源:( 但是后退一步,只是提醒而不是WebService调用,我可以管理它。

上面的代码是工作版本。