如何将锚标签添加到window.location?

时间:2019-09-13 11:25:57

标签: javascript html

我想在此处使用该代码重新加载用户所在的当前页面

<a href="javascript:window.location.href=window.location.href">...

此外,我希望用户跳至给定的锚标签 #berechnen -在这种情况下,我该怎么做?

我尝试过类似的事情

<a href="javascript:window.location.href=window.location.href+#berechnen">

但是那当然行不通。我是否需要先将window-location保存到一个变量,然后将#berechnen -string添加到该变量,然后将href添加到该变量?

2 个答案:

答案 0 :(得分:1)

在头上

<script type="text/javascript"> 
function redirectToAnchor(anchor) {
    // We remove previous anchors from the current URL    
    var redirectToURL = document.URL.replace(/#.*$/, "");

    redirectToURL = redirectToURL + anchor
    window.location.href = redirectToURL;
    window.location.reload(true)
}
</script>

然后:

<a href="javascript:redirectToAnchor('#ANCHOR')">

答案 1 :(得分:1)

我个人真的不喜欢通过用JavaScript替换锚标记的默认行为来滥用锚标记。这样,您就无法进行诸如在新标签页中打开链接,复制链接或将其添加书签的操作。

一种保持这种行为并在单击后仍然重新加载页面的方法是,像往常一样将片段添加到$headers = [ "Content-type" => "text/csv", "Content-Disposition" => "attachment; filename=output_chat.csv", // <- name of file "Pragma" => "no-cache", "Cache-Control" => "must-revalidate, post-check=0, pre-check=0", "Expires" => "0", ]; $columns = ['from_user', 'to_user', 'message', 'date_added']; $callback = function () use ($result, $columns) { $file = fopen('php://output', 'w'); //<-here. name of file is written in headers fputcsv($file, $columns); foreach ($result as $res) { fputcsv($file, [$res->from_user, $res->to_user, $res->message, $res->date_added]); } fclose($file); }; 中,此外,您还绑定了一个JavaScript事件,该事件会在以下情况下重新加载页面:单击它。在这种情况下,您只需使用href属性即可获取URL,然后在设置了URL之后重新加载页面。在下面的示例中,如果锚点具有href类,则在单击锚点时也会重新加载页面。

force-reload
document.addEventListener('click', function(e) {
  if (e.target && e.target.classList.contains('force-reload') && e.target.nodeName === "A") {
    e.preventDefault();

    window.location = e.target.href;
    window.location.reload();
  }
});