【问题标题】:Change CSS when the current URL contains a certain string [closed]当前 URL 包含某个字符串时更改 CSS [关闭]
【发布时间】:2017-07-11 06:32:33
【问题描述】:

我用这个函数来检查网址

<script type="text/javascript">
    $(document).ready(function () {
        if (window.location.href.indexOf("franky") > -1) {
            /* some code to change the css */;
        }
    });
</script>

目前它只在我刷新页面时有效。

有没有办法让它在 url 更改而没有任何刷新时工作?谢谢

示例:就像您必须选择一种颜色一样,您单击一个按钮来选择您的颜色,它会生成 example.com/color.html#/red; example.com/color.html#/blue ; example.com/color.html#/black 只有颜色变化没有刷新,我想在 url 包含每个字符串颜色时添加特定的 css

【问题讨论】:

  • 澄清一下 - 您想更改 URL 吗?目前你的代码只是试图检查它。
  • 有没有办法让它工作,这样 url 无需任何刷新就可以更改有什么意义?如果您尝试在某处存储状态,则 URL 不适合它。
  • 我认为这意味着在推送到它之后从history 获取更改后的 URL,例如stackoverflow.com/questions/32828160/…
  • 不,我不想改变它!我想通过包含字符串的特定 url 添加自定义 css !它仅在刷新页面上有效,但是当 url 更改而不刷新时没有出现
  • 听起来你是在尝试根据URL检测特定用户,然后使用不同的CSS?如果是这样,这不是实现您想要的好方法。

标签: javascript


【解决方案1】:
<a href="#black">black</a>
<a href="#blue">blue</a>

<script type="text/javascript">
$(window).on('hashchange', function(e){
    var origEvent = e.originalEvent;
    resultdata = origEvent.newURL;
    var black = resultdata.match(/black/);
    if (black){
      console.log(black);
    }
});
</script>

【讨论】:

  • 在没有刷新页面的情况下更改url时仍然不起作用
  • 但是 url 检查字符串在哪里?
  • on hashchange 函数在窗口的哈希值发生变化时触发。您可以在此函数中插入 if 循环代码或其他内容来检查
  • 那么如果我想在 url 包含 "black" 的情况下添加 css 怎么办?我是菜鸟
  • 非常感谢它似乎有效! :D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-04
  • 1970-01-01
  • 1970-01-01
  • 2011-01-22
  • 1970-01-01
  • 2021-06-15
  • 1970-01-01
相关资源
最近更新 更多