【问题标题】:Jquery Modal Popup not showing embedded pdf fileJquery Modal Popup 未显示嵌入的 pdf 文件
【发布时间】:2019-02-19 23:40:03
【问题描述】:

我有这个问题,我正在尝试通过模式弹出窗口来解决。当我从后面的代码中调用弹出窗口时。该链接不显示嵌入的 pdf 文件,只是空白的嵌入黑屏。

但是,当我将嵌入标签从模式弹出窗口中取出并根据后面代码的响应显示它时,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;
}

【问题讨论】:

    标签: c# jquery


    【解决方案1】:

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

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

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

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

    并查看文档是否加载(如果没有,请检查您的浏览器控制台是否有任何错误)。

    我建议您从 http 端点提供这些文档,例如在 IIS 中设置一个虚拟文件夹,将其指向文件所在的本地网络路径(例如 Z:/testdirectory/),然后设置 pdffile.Src改为这个虚拟目录文件路径。

    【讨论】:

    • 这是一个内部网站,所以我更改了安全设置以允许查看 pdf。我确实接受了您关于硬编码 src 作为测试的建议。我创建了一个 pdf,并在 embed 标记中硬编码了路径 Z:/testdirectory/testfolder/testfile.pdf,它在模式弹出窗口中显示了 pdf。所以问题是从后面的代码传递到嵌入标签的 pdffile.src 字符串。
    • 在这种情况下,单击SelectButton 后,您可以“检查”更新后的 html 以查看其呈现方式。如果您使用的是 Chrome,这很简单,只需右键单击包含您的 embed 元素的对话框,然后从上下文菜单中单击“检查”,那么您应该能够看到 src 属性的值。跨度>
    • 顺便说一句,你的 url 格式不正确,文件协议应该像这样file://,所以你的代码应该更像:pdffile.Src = "file://Z:/testdirectory/" + DirPath + "/" + SelectLink.Text;
    • 不,格式正确。 file:// 给我一个拒绝访问错误。我查看了嵌入文件的来源,复制了 src 属性的值并将其粘贴到新的浏览器窗口中,它显示了 pdf。
    • 自己导航到 url(通过将其粘贴到地址栏中)与从文档内部访问该 url 是两件不同的事情,它们具有不同的安全上下文。我很好奇,当你说“我更改了安全设置以允许查看 pdf”时你是怎么做到的?你测试的是什么浏览器?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多