所以,我有一系列div,每个div里面都有一个链接。
我想要完成的是在另一个窗口中打开或打开.pdf文件,如果链接以.pdf结尾,如果没有做任何事情或其他事情稍后决定。
我遇到的问题是当你点击链接时,它会打开同一个文档,就像你在页面上有.pdfs一样。
我尝试在这个小提琴中复制问题:
https://jsfiddle.net/x9fo6cgk/
但它不起作用。代码在我这边工作。
以下是代码:
$('.somelink').click(function(eventObject) {
var elem = $(this);
if (elem.attr("href").match(/\.pdf$/i)) {
eventObject.preventDefault();
elem.attr('target', '_blank');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="linkholder">
<a class="somelink" href="https://bitcoin.org/bitcoin.pdf">pdf 1</a>
</div>
<div class="linkholder">
<a class="somelink" href="http://www.pdf995.com/samples/pdf.pdf">pdf 2</a>
</div>
<div class="linkholder">
<a class="somelink" href="http://www.bing.com">.com</a>
</div>
<div class="linkholder">
<a class="somelink" href="http://www.google.org">.org</a>
</div>
提前致谢!
答案 0 :(得分:0)
如果它们是PDF,您应该只更改页面加载的目标。
$('.somelink').each(function() {
var elem = $(this);
if (elem.attr("href").match(/\.pdf$/i)) {
elem.attr('target', '_blank');
}
});
JSFiddle: https://jsfiddle.net/x9fo6cgk/3/
此HTML中的结果:
<div class="linkholder">
<a class="somelink" href="https://bitcoin.org/bitcoin.pdf" target="_blank">pdf 1</a>
</div>
<div class="linkholder">
<a class="somelink" href="http://www.pdf995.com/samples/pdf.pdf" target="_blank">pdf 2</a>
</div>
<div class="linkholder">
<a class="somelink" href="http://www.bing.com">.com</a>
</div>
<div class="linkholder">
<a class="somelink" href="http://www.google.org">.org</a>
</div>
注意:你的JSFiddle没有选择jQuery,所以没有运行。
答案 1 :(得分:0)
你可以这样做:
$('.somelink').click(function(eventObject) {
var elem = $(this);
if (elem.attr("href").match(/\.pdf$/i)) {
eventObject.preventDefault();
window.open(elem.attr('href'));
}
});
答案 2 :(得分:0)
由于某种原因,这个脚本的行为:
https://learn.jquery.com/events/event-basics/#preventdefault
在Magnolia CMS下的行为有点奇怪。
所以改为使用了这段代码:
$(".linkholder a[href$='pdf']").attr('target','_blank').addClass('pdf');
$(".linkholder a:not(a[href$='pdf'])").addClass('generic');
这是一个小提琴:
https://jsfiddle.net/x9fo6cgk/13/
谢谢大家!