【问题标题】:Using URL parameters to place content into a div?使用 URL 参数将内容放入 div?
【发布时间】:2018-03-27 18:57:39
【问题描述】:

我正在制作一个选择加入页面。我希望用户当前的订阅数据显示在页面顶部。我的方法是根据 URL 参数将内容放入 div 中。如果参数不存在,我希望它放入不同的 div。见以下代码:

<!DOCTYPE html>
<html>

<head>
    <script type="text/javascript">
        var testSub = '<span>Subscription data</span>';
        if (/testnews=1/.test(window.location.href)) {
            document.getElementById('subscribed').innerHTML = testSub;
        } else {
            document.getElementById('not_subscribed').innerHTML = testSub;
        }
    </script>
</head>

<body>
    <div id="subscribed"></div>
    <div id="not_subscribed"></div>
</body>

</html>

【问题讨论】:

  • 还没有测试过,但这看起来已经相当合理了。您能澄清一下您遇到的问题吗?
  • if/else 语句中的某些内容对我不起作用。当我实时托管内容并使用指定参数测试 URL 时,内容不会放入 div 中。如果我在 if 语句中删除一个可以正常工作的警报,那么我知道 if/else 中一定有问题。
  • 更具体地说,我认为这两行是不正确的: document.getElementById('subscribed').innerHTML = testSub; document.getElementById('not_subscribed').innerHTML = testSub;
  • 我建议不要使用正则表达式来测试 URL 查询字符串,而是通过实际检查值(例如,如果 testnews=11 或 othertestnews=1,你的仍然会经过)。您可以使用 URIjs 之类的东西将查询字符串读入对象。

标签: javascript html if-statement url parameters


【解决方案1】:

终于想通了。只需将我的代码包装在 onload 函数中:

    <script type="text/javascript">
     window.onload = function(){
        var testSub = '<span>Subscription data</span>';
        if (/testnews=1/.test(window.location.href)) {
            document.getElementById('subscribed').innerHTML = testSub;
        } else {
            document.getElementById('not_subscribed').innerHTML = testSub;
        }
    }
    </script>


<body>
    <div id="subscribed"></div>
    <div id="not_subscribed"></div>
</body>

</html>

【讨论】:

    猜你喜欢
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 2020-09-07
    • 2017-08-22
    相关资源
    最近更新 更多