如何在HTML段落中添加URL变量

时间:2017-08-30 17:29:15

标签: javascript html

我是HTML的新手。我用Google搜索了一些问题并尝试了一些代码,但它没有用,所以我在这里寻求帮助。

我想要实现的目标:取代??在HTML段落中包含来自网址的值(例如:http://mysite.html?name=Ryan

<p> Hello ??<br> Thanks for answering my question</p>

我的问题: 1.这个Javascript应该从URL中提取 Ryan - 这是正确的吗?

<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
    <script type="text/javascript">
    // Parse the URL parameter
    function getParameterByName(name, url) {
        if (!url) url = window.location.href;
        name = name.replace(/[\[\]]/g, "\\$&");
        var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
            results = regex.exec(url);
        if (!results) return null;
        if (!results[2]) return '';
        return decodeURIComponent(results[2].replace(/\+/g, " "));
    }
    // Give the parameter a variable name
    var urlVar = getParameterByName('name');
});
</script>
  1. 如果问题1中的代码是正确的,我如何将值放在urlVar Ryan )而不是?{在HTML段落内?

2 个答案:

答案 0 :(得分:0)

我假设HTML已经呈现,之后正在使用javascript。

在这种情况下,您需要有一个手柄来替换它。

<p> Hello <span id="username">??</span> Thanks for answering my question</p>

现在,在Javascript代码中,您可以使用以下内容:

var urlVar = getParameterByName('name');
 document.getElementById('username').innerHTML = urlVar;

编辑: <p> Hello <span id="username">??</span> Thanks for answering my question</p>

使用Jquery document.ready在DOM渲染后执行代码

<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
<script type="text/javascript">
$( document ).ready(function() {
      // Parse the URL parameter
    function getParameterByName(name, url) {
        if (!url) url = window.location.href;
        name = name.replace(/[\[\]]/g, "\\$&");
        var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
            results = regex.exec(url);
        if (!results) return null;
        if (!results[2]) return '';
        return decodeURIComponent(results[2].replace(/\+/g, " "));
    }
    // Give the parameter a variable name
    var urlVar = getParameterByName('name');
    document.getElementById('username').innerHTML = urlVar;
});
</script>

答案 1 :(得分:0)

你在URL中有一个hashbang吗?你可以尝试一下:

    function getParameterByName = function(name, useHash) {
        name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
        var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(useHash ? location.hash : location.search);
        return results === null ? undefined : decodeURIComponent(results[1].replace(/\+/g, " "));
    }

传递true或false作为useHash参数