也许这是一个有点愚蠢的问题,但我想知道是否有可能在整个页面重新加载时阻止iframe重新加载。
我在ASP.NET中创建了一个应用程序。我有一个页面,在该页面上有一个表单,一个表格和一个带有iframe的部分。在那部分我可以"上传"一个pdf文件,这个pdf文件显示在iframe中。像这样:
<section class="invoice_file">
<div class="invoice_file_header">
<input id="upload_button" type='file' onchange="readURL(this);" />
</div>
<iframe id="upload_factuur" type="application/pdf" width="696" height="433"></iframe>
</section>
使用我的javascript代码,pdf文件会显示在我的iframe中(大多数情况下):
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#upload_factuur')
.attr('src', e.target.result)
};
reader.readAsDataURL(input.files[0]);
}
}
这个想法是在那个pdf文件上,有信息。这些信息将被接收并放入表格中。当我提交表单时,数据将显示在表格中。但要做到这一点,页面重新加载(重定向)。我的部分也是如此。因此pdf文件消失了,我应该再次上传文件
因此有一种方法可以防止在整个页面重新加载时重新加载一个section或iframe。
答案 0 :(得分:0)
你提到了一个重定向,所以我不确定这是否有效。如果您的意思是由于回发的性质而“重定向”到同一页面,那么这可能有助于实现您的目标
...
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server"
UpdateMode="Conditional"
ChildrenAsTriggers="True">
<ContentTemplate>
<div>
<!-- All your Form fields-->
<asp:Button ID="your submit button" runat="server" Text="Button"/>
</div>
<table id="yourtable">
</table>
</ContentTemplate>
</asp:UpdatePanel>
<section class="invoice_file">
<div class="invoice_file_header">
<input id="upload_button" type='file' onchange="readURL(this);" />
</div>
<iframe id="upload_factuur" type="application/pdf" width="696" height="433">
</iframe>
</section>
</form>
</body>
...
如果您不熟悉UpdatePanel,请参阅以下链接: