我的aspx页面上有一个iframe和几个表。现在当页面加载时,这些表被隐藏了。 iframe用于将文件上载到数据库。根据事件的结果,我必须在我的主页面上显示一个特定的表格(这些表格基本上有“重试”,“下一步”按钮......取决于文件是否上传我必须显示相应的按钮)
现在我在iframe的“onload”事件上有一个JavaScript,我将这些表隐藏起来。当控件在事件发生后返回时,我会显示一个特定的表格。但随后iframe再次加载并隐藏表格。任何人都可以帮我解决这个问题。我不希望第二次加载iframe。
由于
答案 0 :(得分:1)
...类似于:
mainpage.waitTillPostBack = true
YourFunctionCausingPostBack();
..
onload=function(){
if(!mainpage.waitTillPostBack){
hideTables();
}
mainpage.waitTillPostBack = false;
}
答案 1 :(得分:0)
我不确定你的问题是什么,但也许你的方法应该有所不同。尝试将代码放入iframe调用父代的函数。这些函数将显示正确的表:
<!-- in the main page --->
function showTable1() {}
<!-- in the iframe -->
window.onload = function () {
parent.showTable1();
}
这会对您的iframe进行大量控制,远离主页。
答案 2 :(得分:0)
我的问题没有足够的细节来确定是否可以阻止iframe第二次加载。但我建议使用javascript变量来检查是否第二次加载iframe,在这种情况下跳过隐藏表的逻辑,
答案 3 :(得分:0)
这是我的代码
function initUpload() { // alert(“IFrame加载”); _divFrame = document.getElementById('divFrame'); _divUploadMessage = document.getElementById('divUploadMessage'); _divUploadProgress = document.getElementById('divUploadProgress'); _ifrFile = document.getElementById('ifrFile'); _tbRetry = document.getElementById('tbRetry'); _tbNext =的document.getElementById( 'tblNext');
_tbRetry.style.display='none';
_tbNext.style.display='none';
var btnUpload = _ifrFile.contentWindow.document.getElementById('btnUpload');
btnUpload.onclick = function(event)
{
var myFile = _ifrFile.contentWindow.document.getElementById('myFile');
//Baisic validation
_divUploadMessage.style.display = 'none';
if (myFile.value.length == 0)
{
_divUploadMessage.innerHTML = '<span style=\"color:#ff0000\">Please select a file.</span>';
_divUploadMessage.style.display = '';
myFile.focus();
return;
}
var regExp = /^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))(.doc|.txt|.xls|.docx |.xlsx)$/;
if (!regExp.test(myFile.value)) //Somehow the expression does not work in Opera
{
_divUploadMessage.innerHTML = '<span style=\"color:#ff0000\">Invalid file type. Only supports doc, txt, xls.</span>';
_divUploadMessage.style.display = '';
myFile.focus();
return;
}
_ifrFile.contentWindow.document.getElementById('Upload').submit();
_divFrame.style.display = 'none';
}
}
function UploadComplete(message,isError) { 警报(消息); //警报(ISERROR);
clearUploadProgress();
if (_UploadProgressTimer)
{
clearTimeout(_UploadProgressTimer);
}
_divUploadProgress.style.display = 'none';
_divUploadMessage.style.display = 'none';
_divFrame.style.display = 'none';
_tbNext.style.display='';
if (message.length)
{
var color = (isError) ? '#008000' : '#ff0000';
_divUploadMessage.innerHTML = '<span style=\"color:' + color + '\;font-weight:bold">' + message + '</span>';
_divUploadMessage.style.display = '';
_tbNext.style.display='';
_tbRetry.style.display='none';
}
}
tblRetry和tblNext是我想要显示的表,具体取决于事件的结果。