我想在此处使用该代码重新加载用户所在的当前页面
<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添加到该变量?
答案 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();
}
});