我有一个包含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中,它仍然会提示未定义。我错过了什么?
答案 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"));