我的问题是我有一个带有iframe的页面,它使用__doPostBack()调用加载一个asp表单。然后,当我尝试在doPostBack()的“刷新”之后在Javascript中执行某些操作时,没有任何内容。
单击标签时,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。我可以访问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>
答案 0 :(得分:0)
您可以在iframe上分配onload事件,但只要加载iframe,就会触发该事件。不仅仅是在回发发生时。