Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript从div中的pdf对象提取并添加链接?_Javascript_Css_Pdf_Object - Fatal编程技术网

使用javascript从div中的pdf对象提取并添加链接?

使用javascript从div中的pdf对象提取并添加链接?,javascript,css,pdf,object,Javascript,Css,Pdf,Object,我在一个网页中嵌入了一堆PDF,我想为每个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,我想为每个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将加载到页面中,但无论出于何种原因,用户禁用了插件或插件,仍然会有一个链接,用户可以在其中下载文档

有没有一种方法可以用前面的链接以编程方式填充“link”类div

(PDF格式显示)

“下载链接:+filename+


换个方式做会更好吗?与中一样,将链接硬编码,然后用文件路径填充对象数据?基本上,我希望为每个对象保存两次文件路径。

此代码标识页面上的所有
标记,从
数据=
属性检索uri,并在对象标记后立即创建下载链接
。看这个。(需要jQuery库)

$(函数(e){
var filename_re=/[^\/]+\.pdf$/;
$('object')。每个(函数(索引){
var uri=$(this.attr('data');
var filename=filename\u re.exec(uri);
$(this.after('Download Link:');
}); 
});
纯Javascript版本(不需要jQuery)。见:

var filename\u re=/[^\/]+\.pdf$/;
var obj=document.getElementsByTagName('object');
对于(变量i=0,len=obj.length;i
工作正常!反正我用的是jQuery,所以马上就集成了。谢谢如果对象中有网页而不是pdf,是否可以修改此选项以显示不同的文本?例如,如果只是有一个写着“link”而不是文件名的链接,那么你想要一个下载链接:如果url以.pdf结尾,则是文件名;如果url以其他内容结尾,则是一个链接(例如(.html))?
$(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>');
    }); 
});
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);
}​