【问题标题】:How to work around the <base> tag? [duplicate]如何解决 <base> 标签? [复制]
【发布时间】:2012-09-10 16:40:39
【问题描述】:

可能重复:
How to use JavaScript variable in an HTML link

我正在处理的网站有一个 &lt;base&gt; 标记指向一个预先建立的 URL。我想做的是绕过&lt;base&gt;标签,使用下面的trueURL来查找网页的url。

我需要这个变量,因为我想构建一些指向网页不同部分的内部锚点。

我遇到的问题是我不知道应该如何使用我存储在我的 trueURL 变量中的 url。是否可以使用它,然后向 url 添加额外的扩展名以使其指向我的锚点?

var trueURL = window.location.href;

以下是我想要获得的:

    <html>

    <ol>
        <li>
            <a href= [trueURL] + "#link1">Link1</a>
        </li>

        <li>
            <a href= [trueURL] + "#link2">Link2</a>
        </li>

        <li>
            <a href= [trueURL] + "#link3">Link2</a>
        </li>
    </ol>

    </html>

因此最后我希望有link1,例如,看起来像trueURL#link1。

【问题讨论】:

  • 你不能使用链接2吗?
  • 我认为问题在于 标签...所以如果基本标签设置为 wwww.example.com ...因为这是一个相对链接,它会链接到 wwww。 example.com#link2
  • 虽然我知道这不是你的决定,但值得一读这个问题,它是理解base的行为和怪癖的答案:Is it recommended to use the <base> html tag?
  • 你为什么要开始一个几乎identical question

标签: javascript html variables tags base


【解决方案1】:

我认为这会达到您想要的效果:

<html>
<base href="http://www.example.com" target="_blank" />
<script type="text/javascript">
var trueUrl = document.location.href;
</script>
<ol>
    <li>
        <a href="#" onclick="window.location = trueUrl + '#link1'; return false">Link1</a>
    </li>
    <li>
        <a href="#" onclick="window.location = trueUrl + '#link2'; return false">Link2</a>
    </li>
    <li>
        <a href="#" onclick="window.location = trueUrl + '#link3'; return false">Link3</a>
    </li>
</ol>
</html>

但是,通过 javascript 执行此操作的一个问题是,爬虫将无法跟踪这些链接,因此您可能会受到 SEO 的影响。

理想的解决方案可能是提供绝对路径服务器端,而不是使用 javascript。

【讨论】:

  • 请不要使用 javascript: 伪协议。您的代码最好不显眼地添加或添加为&lt;a href="#" onclick="window.location = trueUrl + '#link1'; return false"&gt;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-06
  • 2018-12-24
  • 2017-04-03
相关资源
最近更新 更多