2016-11-25 85 views
0

我有一个wordpress主题,其中有一个链接到.pdf文档的徽标。 为了标识链接到文档,我必须使用自定义的javascript:使用javascript打开新标签页并重新加载父页

document.getElementById('logo').href = "javascript:window.open('mylink')" 

我想这个文件在新标签中打开。它目前工作,但由于某些原因,我需要在新标签页打开后重新加载父页面。

我可以添加什么来重新加载父页面? 谢谢

+0

所以你说如果你点击标志,它会打开一个新的标签,但是如果你再次点击,它不起作用? – Rajesh

+0

你需要重新加载页面的原因是什么? – Archer

+0

@Rajesh感谢您的回答。不,实际上在新选项卡打开后父页面变为空白,因此我需要重新加载它。我不知道是否有一个更简单的解决方案,但是; location.reload()“做这个工作。 – Ryley38

回答

1

做的正是你问什么,你可以做一个简单的小变化......

document.getElementById('logo').href = "javascript:window.open('mylink');location.reload()"; 

但是,不知道为什么你需要刷新页面,我不能说这是最好的行动方针。我们需要更多信息来帮助您更合适。

编辑 现在你已经解释了为什么你需要重新加载页面(当你点击链接它变为空白),你应该改变以前的代码,这一点,为了阻止这种事情发生?

var link = document.getElementById('logo'); 
link.href = "url_of_the_pdf"; 
link.target = "_blank"; 

先前从window.open()输出正在写入到页,这引起了当前页的内容被删除。此方法更改链接以使其正常工作,并应解决您以前的问题。

+0

谢谢阿彻。这个简单的改变解决了这个问题。 实际上,新标签打开后,父页面变空白,所以我需要重新加载它。 t知道是否有一个更简单的解决方案,但这个工作。 – Ryley38

+0

在这种情况下,我会添加更多的代码到这个答案来解决这个问题。 – Archer

+0

完成。是否有理由不能修改链接本身,而不是用Javascript来修改它? – Archer

0
<a onclick="open_in_new_tab_and_reload('./path_to_pdf.pdf')" href="#">PDF</a> 

<script> 
function open_in_new_tab_and_reload(url) 
{ 
    //Open in new tab 
    window.open(url, '_blank'); 
    //focus to thet window 
    window.focus(); 
    //reload current page 
    location.reload(); 
} 
</script> 
0

你不需要javascript的。您可以将徽标包装在<a href="yourlink"></a>标签中。然后,使用target属性来告诉它在新选项卡中打开。

<a target="_blank" href="yourlink"><img src="yourlogo"...></img></a> 
+0

这是什么重新加载主页? – Teemu

+0

@Teemu我明白有一个问题,当重新加载主页。我以为他可能完全避免使用js。 – ThatBrianDude

+0

@ThatBrianDude 谢谢。 实际上在新选项卡打开后,父页面变为空白,因此我需要重新加载它。我不知道是否存在一个简单的解决方案,但我可以解决它使用; location.reload() – Ryley38