javascript - 在 iframe 中访问 jqgrid

标签 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 的数据。根据 Olga 的回答,我尝试放置

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

在父jsp中,它仍然提示undefined。我错过了什么?

最佳答案

可能您在访问 iframe 内容时遇到同源问题。看herehere .

已更新:问题可能是您尝试访问 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/

相关文章:

javascript - Express.js 文件上传

javascript - 在 div 中按类名 Toggle() 一个元素

java - jQuery 多文件上传插件

jquery - 在按钮单击事件上使用 javascript 更改谷歌地图 iframe src 属性

javascript - 如何使用正则表达式提取文本?

javascript - 使用 Firefox 扩展的属性触发自定义事件

javascript - 使用 Javascript/Jquery 登录验证文本框/输入以及正确/错误的图像

javascript - 嵌入雅虎!使用 IE11 的视频失败

url - 需要在 ie8 的新选项卡中打开链接!

javascript - 在文件之间导出 Nodejs 中的日志记录