【问题标题】:Refresh after __doPostBack within iframe / jQuery/ASP在 iframe/jQuery/ASP 中的 __doPostBack 之后刷新
【发布时间】:2015-12-22 10:53:05
【问题描述】:

我的问题是我有一个带有 iframe 的页面,该页面通过 __doPostBack() 调用加载了一个 asp 表单。然后,当我在 doPostBack() 的“刷新”之后尝试在 Javascript 中做某事时,什么都没有。

当我单击 a 标签时,会在 iframe 中调用 __DoPostBack 操作。 ej:

<a href="javascript:__doPostBack('ctl00$plhContent$clsOverview$dgClasses$ctl02$cmdAskRegister','')" class="button" id="ctl00_plhContent_clsOverview_dgClasses_ctl02_cmdAskRegister">Inscripción en Curso</a>

我尝试了很多我在互联网上看到的解决方案,但所有这些解决方案都是我没有加载到我的 HTML 上的 asp。我可以访问 iframe 上的 asp 事件吗?

iframe 加载:

<div id="gtregistrations.<%=medEntry.getExternalIdentity()%>.<%=medEntry.getType()%>.<%=sLocale%>">
<script type="text/javascript" src="<%=pref.getGtPath()%>/Liferay/scripts/tls/myregistrations.js"></script>

Javascript:

<script type="text/javascript">
        var idConvocatoria = 'hola';

        if(typeof String.prototype.trim !== 'function') {
              String.prototype.trim = function() {
                return this.replace(/^\s+|\s+$/g, ''); 
              }
            }

        $(window).load(function() {

            $("#frm_gt_media")
              .contents().find("#ctl00_plhContent_clsOverview_dgClasses")
              .find("[id$=_cmdAskRegister]").click(function() {
                  var oldHref = $(this).attr("href");
                  var idConvocatoria = $(this).parent().parent().siblings(":first").text().trim();

                  if (confirm("¿Necesita desplazamiento para el curso?")) {
                        //Logica ejecutar formulario y registrar
                        AUI().use(
                                  'aui-aria',
                                  'aui-dialog',
                                  'node',
                                  'aui-overlay-manager',
                                  'dd-constrain',
                                  function(A) {
                                        var dialog = new A.Dialog(
                                          {
                                            centered: true,
                                            height: 700,
                                            title: 'Solicitud Desplazamiento',
                                            width: 1024

                                          }
                                        ).render();
                                        dialog.plug(
                                          A.Plugin.IO,
                                          {
                                            autoLoad: false,
                                            uri: '<%=solicitudPortlet%>+&idConvocatoria='+ $("#frm_gt_media").contents().find("#ctl00_plhContent_clsOverview_dgClasses").find("[id$=_cmdAskRegister]").parent().parent().siblings(":first").text().trim()
                                          }
                                        );

                                        dialog.io.start();
                                      }
                                    );
                    } else {
                        //logica solo registrar y refresh?

                    }
              });
        });
    </script>

【问题讨论】:

  • 不确定我不明白你想要达到什么目标以及具体时间?
  • 我只想在 doPostBack 执行后做一些事情。更改表单按钮的功能。
  • doPostBack代码在哪里,什么时候执行,不在你的问题里,请补充
  • 您可以在 iframe 上分配一个 onload 事件,但它会在 iframe 加载时触发。不仅仅是在回发发生时。
  • 非常感谢@HaukurHaf 这很完美。如果您愿意,可以发表您的评论,如回复,我标记为已解决。

标签: javascript jquery html asp.net iframe


【解决方案1】:

您可以在 iframe 上分配 onload 事件,但该事件会在 iframe 加载时触发。不仅仅是在回发发生时。

【讨论】:

    猜你喜欢
    • 2014-01-09
    • 1970-01-01
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多