我有一个动态生成页面的网站,它是SharePoint网站。该网站包含许多文档库,这些库包含Word、Excel和PDF文档。当用户单击文档时,仅Office文档会在客户端应用程序中打开。PDF文档则只在同一窗口中打开。当人们关闭包含文档的窗口时,他们也关闭了该网站。我正在尝试使用JavaScript onload将target="_blank"添加到PDF链接。
到目前为止,我已经实现了以下代码:
window.onload = function(){
l=document.links.length;
for(i = 0; i<l; i++) {
n = document.links[i].href.indexOf(".pdf");
if (n > 0){
document.links[i].setAttribute('target', '_blank');
}
}
}
这段代码基本可用,有些pdf链接按预期在新窗口中加载,有些在父窗口中加载,有些链接同时在新窗口和父窗口中加载。我该如何告诉浏览器只在新窗口而不是父窗口中加载,避免在父窗口中加载呢?
这是我想要实现的:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<a href="a.pdf">a.pdf</a><br /><br />
<a href="b.html">b.html</a><br /><br />
<a href="c.pdf">c.pdf</a><br /><br />
<script>
window.onload = function(){
l=document.links.length;
for(i = 0; i<l; i++) {
n = document.links[i].href.indexOf(".pdf");
if (n > 0){
document.links[i].setAttribute('target', '_blank');
}
}
}
</script>
</body>
</html>
我遇到的问题是,SharePoint文档库修改了链接行为,导致JavaScript不会使它们在新窗口中打开。以下是文档库中链接的示例:
<a onfocus="OnLink(this)" href="https://rcd.sharepoint.com/HR/HR%20Policy%20Manual.pdf" onmousedown="return VerifyHref(this,event,'0','','')" onclick="return DispEx(this,event,'TRUE','FALSE','FALSE','','0','','','','','331','0','0','0x7fffffffffffffff','','')">HR Policy Manual</a>