【问题标题】:Using javascript to open new tab and reload parent page使用 javascript 打开新标签并重新加载父页面
【发布时间】:2017-04-09 16:06:10
【问题描述】:

我有一个带有链接到 .pdf 文档的徽标的 wordpress 主题。 为了将徽标链接到文档,我必须使用自定义 javascript:

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

我希望在新标签页中打开此文档。它目前可以工作,但由于某些原因,我需要在新标签打开后重新加载父页面。

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

【问题讨论】:

  • 所以你是说如果你点击标志,它会打开一个新标签,但是如果你再次点击,它就不起作用了?
  • 什么原因需要重新加载页面?
  • @Rajesh 感谢您的回答。不,实际上父页面在新标签打开后就变成空白了,所以我需要重新加载它。我不知道是否有更简单的解决方案,但 ;location.reload()" 可以完成这项工作。

标签: javascript wordpress hyperlink reload


【解决方案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() 的输出被写入页面,导致当前页面内容被删除。此方法会更改链接以使其正常工作,并且应该可以解决您之前的问题。

【讨论】:

  • 谢谢阿切尔。这个简单的改变解决了这个问题。实际上在新标签打开后,父页面变为空白,所以我需要重新加载它。我不知道是否有更简单的解决方案,但这可行。
  • 在这种情况下,我将在此答案中添加更多代码以解决该问题。
  • 完成。您是否有理由不能修改链接本身,而不是使用 Javascript 进行修改?
  • 谢谢。确实,这个解决方案更好。老实说,我不知道该怎么做。我是 Wordpress 架构的新手。以前链接到主页的徽标。我已经联系了 wordpress 主题的支持团队,以了解如何更改链接。他们提供了上面的脚本作为解决方案,但我仍然遇到这个父页面问题。如果我查找特定文件,我可以修改该链接,但我不确定是否能正确完成。
  • 很公平。如果它是模板的一部分,那么您将能够更改它,但脚本解决方案就足够了。只要你最终到达那里:)
【解决方案2】:
<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>

【讨论】:

    【解决方案3】:

    您不需要 javascript。您可以将徽标包装在 &lt;a href="yourlink"&gt;&lt;/a&gt; 标记中。然后,使用target 属性告诉它在新标签页中打开。

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

    【讨论】:

    • 这如何重新加载主页?
    • @Teemu 我知道在重新加载主页时有一个问题可以自行解决。我想他可能完全不使用js来避免这一切。
    • @ThatBrianDude 谢谢。实际上在新标签打开后,父页面变为空白,所以我需要重新加载它。我不知道是否有更简单的解决方案,但我可以使用 ;location.reload() 解决它
    猜你喜欢
    • 1970-01-01
    • 2012-09-22
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-25
    • 2018-07-01
    • 1970-01-01
    相关资源
    最近更新 更多