【发布时间】:2016-11-16 21:37:54
【问题描述】:
我正在开发一个相当广泛的本地网站。它不在网络服务器上,我或多或少地受限于 HTML 和 JavaScript。
我在使用此语句调用的所有页面上都有一个侧面导航菜单:
<script type="text/javascript" src="menu/menu.js"></script>
menu.js 本质上是一个这样的链接列表:
document.write("<a href='page5.html#part1'>Part 1</a>");
在所有页面上都有一个粘性标题脚本,这使得链接到锚点很麻烦。如果您当前位于链接链接到的页面上并且链接链接到的锚点上方,则它可以正常工作。但是,如果您当前位于同一页面上的锚点下方,则会出现故障。它不会把你带到它应该去的地方。
可能还有另一种方法,但我觉得一个易于实施的解决方案是创建一个链接,首先在顶部打开页面,然后将您带到锚点。
我尝试使用此问题 ([Force page reload with html anchors (#) - HTML & JS) 中的@Qwerty 解决方案,但没有成功。我试过这个:
document.write("<a href='page5.html#part1' onclick='location.reload()'>Part 1</a>");
我猜它不起作用,因为它是本地的和/或因为从 JS 文件中读取的链接。
示例 为简单起见,假设网站上有 3 个页面,每个页面上有 3 个锚点。我希望这个外部 JS 菜单打开并在所有页面上工作。它有这些链接:
page1.html#part1
page1.html#part2
page1.html#part3
page2.html#part1
page2.html#part2
page2.html#part3
page3.html#part1
page3.html#part2
page3.html#part3
【问题讨论】:
-
迷失了你的目标,需要更多代码,我不想写一个完整的网页来猜测你的页面是如何制作的。
-
99% 的发布问题都需要MCVE (Minimal, Complete, and Verifiable Example)。请发布与您的问题相关的 JavaScript/jQuery、CSS 和 HTML。使用以下任何或所有服务创建演示:jsFiddle.net、CodePen.io、Plunker.co、JS Bin 或 sn-p(位于文本编辑器工具栏或 CTRL+M 上的第 7 个图标)。
-
我不能。它必须在本地工作,我认为这些服务中没有任何一个可以效仿。另外,我正在使用一个外部 JS 文件,这会给事情带来麻烦。
-
本站会模拟多个文件:plnkr.co外部JS文件没问题。您遇到的活动扳手是
document.write不要使用它......永远。 developer.mozilla.org/en-US/docs/Web/API/Document/write -
这在某些情况下很重要,但在您的情况下,这可能不重要,如果没有代码或所述网页作者的明确意图,这很难说。
标签: javascript html