我有一个包含 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 的数据。根据 Olga 的回答,我尝试放置
$(function(){
$("#myFrame").load(function(){
var grid = $("#myFrame").contents().find("#myGrid");
var count = grid.jqGrid('getGridParam', 'reccount');
alert("count=" + count);
});
});
在父jsp中,它仍然提示undefined。我错过了什么?
最佳答案
可能您在访问 iframe
内容时遇到同源问题。看here和 here .
已更新:问题可能是您尝试访问 iframe
的内容 before 它将被加载。
关于 the demo哪个有效
$(function () {
$("#myFrame").load(function() {
var $grid = $(this).contents().find("#list"),
count = $grid.jqGrid('getGridParam', 'reccount');
alert("count=" + count);
});
});
(我使用 #list
而不是 #myGrid
,因为我加载的 iframe 中有另一个网格 ID)我使用 jQuery.load确保我仅在加载 iframe
之后从 iframe
访问网格。对应的 HTML 如下:
<body>
<iframe id="myFrame" src="textareaedit.htm"></iframe>
</body>
关于javascript - 在 iframe 中访问 jqgrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12346686/