当整页重新加载时,防止重新加载iframe / section

时间:2015-04-20 14:25:32

标签: javascript html asp.net

也许这是一个有点愚蠢的问题,但我想知道是否有可能在整个页面重新加载时阻止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。

1 个答案:

答案 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,请参阅以下链接: