jQuery Modal Popup不显示嵌入式pdf文件

时间:2019-02-19 14:21:41

标签: c# jquery

我有一个要通过模式弹出窗口解决的问题。当我从后面的代码中调用弹出窗口时。链接不显示嵌入式pdf文件,仅显示空白的嵌入式黑屏。

但是,当我将embed标签放在模式弹出窗口之外并根据来自后面代码的响应进行显示时,pdf文件显示在屏幕上。所以我知道这条路是对的。我尝试在pdffile.src之后的代码中调用模式弹出窗口,但响应中没有任何变化。

<script>
    function ShowPopup() {
    $(function () {
        $("#displaypdf").dialog({
            modal: true,
            height : 800,
            width : 800,
        });
     });
     return false;
    };
</script>

<div id="displaypdf" style="display:none">
     <embed id="pdffile" class="pdfsource" runat="server" />
</div>

protected void SelectButton_Click(object sender, EventArgs e)
{
    ClientScript.RegisterStartupScript(this.GetType(), "Popup", "ShowPopup();", true);
    string DirPath = Request.QueryString["Dir"];
    Button btnButton = sender as Button;
    GridViewRow gvRow = (GridViewRow)btnButton.NamingContainer;
    Label SelectLink = (Label)gvRow.FindControl("SelectLink");
    pdffile.Src = "file:Z:/testdirectory/" + DirPath + "/" + SelectLink.Text;
}

1 个答案:

答案 0 :(得分:0)

根据您的代码,我看到您希望浏览器加载本地资源(文件:Z:...),由于存在安全隐患,大多数浏览器均不允许这样做。

要确认是否是问题所在,请尝试更改:

pdffile.Src = "file:Z:/testdirectory/" + DirPath + "/" + SelectLink.Text;

pdffile.Src = "http://www.africau.edu/images/default/sample.pdf";

并查看文档是否已加载(如果未加载,请检查浏览器控制台是否存在任何错误)。

我建议您从http端点提供这些文档,例如在IIS中设置一个虚拟文件夹,将其指向文件将位于的本地网络路径(例如Z:/ testdirectory /),然后设置{{1 }}转到此虚拟目录文件路径。