我有一堆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就会在页面中加载,但是如果由于某种原因用户禁用了插件或插件,仍然会有一个链接可以在其中下载文档。有没有办法以编程方式用前面的链接填充“链接”类div?(PDF显示)“下载链接: +文件名+ ”换一种方式会更好吗?像这样,对链接进行硬编码,然后用文件路径填充对象数据吗?基本上,我希望节省每个对象的文件路径两次。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 此代码标识页面上的所有<object>标签,从data=属性中检索uri,并在对象标签后立即创建下载链接<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);}​ (adsbygoogle = window.adsbygoogle || []).push({});
07-28 03:51
查看更多