如何在页面上检测链接的PDF并显示使用jquery下载Adobe Reader的消息?

时间:2009-12-14 09:36:05

标签: javascript jquery css pdf xhtml

如果页面链接了.pdf文件,那么<p>中的邮件应该在#mainontent div结尾之前添加为最后一段<p>

例如这是默认的html?

<div id="maincontent">
<ul class="cheat_sheet_downloads">
<li><a href="http://www.addedbytes.com/download/css-cheat-sheet-v2.pdf">PDF, 316Kb</a></li>
<li><a href="http://www.addedbytes.com/download/css-cheat-sheet-v3.pdf/">PNG, 77Kb</a></li>
</ul>
<div>

检测到pdf后

应该是这样的

<div id="maincontent">
    <ul class="cheat_sheet_downloads">
    <li><a href="http://www.addedbytes.com/download/css-cheat-sheet-v2.pdf/">PDF, 316Kb</a></li>
    <li><a href="http://www.addedbytes.com/download/css-cheat-sheet-v3.pdf/">PNG, 77Kb</a></li>
    </ul>
<div>

<div id="ttip">
Most computers will open PDF documents automatically, but you may need to 
download <a title="Link to Adobe website - opens in a new window"  
href="http://www.adobe.com/products/acrobat/readstep2.html" target="_blank">
                 Adobe Reader</a>.
</div>

#maincontent div之后的另一个div。用jquery可以吗?

编辑:

页面可以有一个或多个PDF我想在底部添加消息。我也需要IE 6兼容性

编辑2:我不能也不想在工具提示上使用鼠标

2 个答案:

答案 0 :(得分:1)

您可以遍历所有锚标记,并使用jQuery找到它的扩展名。

但我不认为这对你来说已经足够了。当向服务器发出请求时,某些站点会流式传输文件。在提出此类请求时,您将无法确定服务器将下载的内容。

例如,当我单击按钮时,会向服务器发出请求,服务器将按以下方式处理请求。

Response.ContentType = "application/pdf";
Response.AppendHeader("Content-Disposition","attachment; filename=test.pdf");    
Response.TransmitFile("yourfilepath);
Response.Flush();

这将强制浏览器打开一个对话框来保存或打开文档。

答案 1 :(得分:1)

var tip = "<p>Most computers will open PDF documents ";
tip += "automatically, but you may";
tip += "need to download <a title='Link to Adobe website-opens in a new window'";
tip +=" href='http://www.adobe.com/products/acrobat/readstep2.html'  
               target='_blank'>Adobe Reader</a>.</p>";

$(document).ready(function(){

    //IF NUMBER OF PDF LINKS IS MORE THAN ZERO INSIDE DIV WITH ID maincontent
    //THEN THIS WILL PUT TIP PARAGRAPH AS LAST CHILD OF DIV
    if($("div#maincontent a[href*='/pdf']").length>0){
    $("div#maincontent").children(":last-child").after(tip);
    }
});

检查here