访问iframe中的jqgrid

时间:2012-09-10 06:56:51

标签: javascript jquery iframe jqgrid

我有一个包含iframe和按钮的jsp。 iframe包含jqgrid。我需要在按下按钮时提醒iframe内部的jqgrid的记录数。

我试过

var grid = jQuery("#myFrame").contents().find("#myGrid");
var count = grid.jqGrid('getGridParam', 'reccount');
alert(count); //alerts undefined

如何从iframe访问jqgrid?

更新:

HTML片段

    <body>
        <iframe 
            frameborder="0" name="myFrame" id="myFrame" width="100%"
            height="290px" scrolling="no"
            src="myFrameContent.jsp">
        </iframe>
       <form action="frameAction" method="post" target="myFrame">
           <button>refresh table</button> 
       </form>
    </body>

当按下按钮时,表单将被提交,然后iframe将重新加载json字符串(响应)作为jqgrid的数据。根据奥尔加的回答,我试着把

$(function(){
        $("#myFrame").load(function(){         
            var grid = $("#myFrame").contents().find("#myGrid");           
            var count = grid.jqGrid('getGridParam', 'reccount');          
            alert("count=" + count);     
        });
    });

在父jsp中,它仍然会提示未定义。我错过了什么?

1 个答案:

答案 0 :(得分:0)

如果您使用的iframe具有相同的域名,那么它可能会有用,但如果您使用的是跨域,则无法访问内部html /内容。

var $frame = document.getElementById("myFrame");
var $frameContent = frm.contentWindow || frm.contentDocument;

alert($frameContent.document.getElementById("myGrid"));
console.log($frameContent.document.getElementById("myGrid"));