0

Webページに多数のPDFが埋め込まれているので、それぞれのダウンロードリンクを追加または追加したいと思います。例えば:

<div>
  <object data="files/schedule.pdf" width="99%" height="800"></object>
<div class="link">
  Download Link: <a href="files/schedule.pdf">schedule.pdf</a>
</div>

このようにしてPDFがページに読み込まれますが、何らかの理由でユーザーがプラグインまたはアドオンを無効にしている場合でも、ドキュメントをダウンロードできるリンクがあります。

プログラムで「リンク」クラスのdivに前のリンクを入力する方法はありますか?

(PDF表示)

"ダウンロードリンク:<a href=" + filepath + "> + filename + </ a>"

それを逆にしたほうがいいでしょうか?のように、リンクをハードコーディングしましたが、オブジェクトデータにファイルパスを入力しますか?基本的に、オブジェクトごとにファイルパスを2回入力する手間を省くために探しています。

4

1 に答える 1

1

このコード<object>は、ページ上のすべてのタグを識別し、属性からURIを取得し、オブジェクトタグの直後にdata=ダウンロードリンクを作成します。<div>このjsFiddleを参照してください。(jQueryライブラリが必要です)

$(function(e) {
    var filename_re = /[^\/]+\.pdf$/;
    $('object').each(function(index) {
        var uri = $(this).attr('data');
        var filename = filename_re.exec(uri);
        $(this).after('<div class="link">Download Link: <a href="'+uri+'">'+filename+'</a></div>');
    }); 
});

プレーンなJavascriptバージョン(jQueryは必要ありません)。jsFiddleを参照してください:

var filename_re = /[^\/]+\.pdf$/;
var obj = document.getElementsByTagName('object');
for (var i = 0, len = obj.length; i < len; i++) {
    var uri = obj[i].data;
    var filename = filename_re.exec(uri);
    var div = document.createElement('DIV');
    div.innerHTML = 'Download Link: <a href="'+uri+'">'+filename+'</a>';
    obj[i].parentNode.insertBefore(div, obj[i].nextSibling);
}​
于 2012-11-13T12:20:27.407 に答える