无法从子 iframe 获取 javascript 执行按钮单击

Unable to get javascript to do button click from child iframe

本文关键字:javascript 执行 按钮 单击 获取 iframe      更新时间:2023-09-26

我正在玩Jquery UI对话框。 我有一个带有网格视图的页面,一个刷新网格视图的按钮和一个链接。 单击链接时,将弹出一个对话框窗口,其中包含记录的详细信息。

当我在子页面上按保存时,我让子页面从父页面调用 javascript 函数。 在此函数中,它尝试执行按钮单击事件,但似乎不起作用。

如果你看看下面的 showThank 函数,警报有效,按钮文本更改,但按钮单击不起作用。

这可能是安全功能吗?两个页面现在在同一页面上。

嗯,有什么线索吗?

谢谢

编辑 - 如果手动单击按钮,它将更改网格(在按钮事件处理程序中)。然而,jquery似乎没有进入按钮的事件处理程序,网格也没有改变。

父页面网页

<asp:GridView ID="gv" runat="server" />
<asp:Button ID="btnRefresh" runat="server" />
<a id="popoutUsers" href="popup.aspx?page=Bob" class="OpenNewLink">CLICK ME</a>
<script type="text/javascript">
    $(function () {
        $('.OpenNewLink').click(function () {
            var url = $(this).attr('href');
            var dialog = $('<div id="modal"></div>').appendTo('body')
            $('<iframe id="site" src="' + url + '" />').dialog({
                modal: true
                , close: function (event, ui) {
                    // remove div with all data and events
                    dialog.remove();
                }
            });
            return false;
        });
        showThanks = function () {
            alert("Thanks");
            var button = $("#btnRefresh");
            button.val("hello"); //This works
            button.click(); //Nothing seems to happen
            // button.trigger("click"); (Tried trigger as well but no luck)
        };
    });
</script>

子页面

<div>
    Why hello there
    <asp:Button ID="btnBob" runat="server" Text="click me" />
</div>
<script type="text/javascript">
    $(function () {
        $('#btnBob').click(function (e) {
            e.preventDefault();
            window.parent.showThanks();
            window.parent.$('.ui-dialog-content').filter(function () { return $(this).dialog('isOpen'); }).dialog('close');
            return false;
        });
    });
</script>

所以决定做新一轮的谷歌搜索,并找到了这个链接 Html 按钮调用 JQuery 并且不回发

我将按钮更改为以下内容(添加了使用提交行为)

现在它起作用了。 希望我没有浪费人们的时间...