如何在 HREF 中回显 JavaScript 生成的值


how to echo javascript generated value in href?

这是我下面的javascript代码(只是为了获取当前的url)

<html>
<head>
</head>
<body onload="myFunction();">
<p id="myurl"></p>
<script>
function myFunction() {
    document.getElementById("myurl").innerHTML =
    window.location.host;
}
</script>
</body>
</html>

现在我想使用如下所示<p id="myurl"></p>

<a href="https://www.facebook.com/sharer/sharer.php?u=<p id="demo"></p>">Share on Facebook</a> <br>

但是由于它无法在href="value"中执行
有什么方法可以用 php 或其他东西做到这一点吗?

使用这个:-

 <a href="https://www.facebook.com/sharer/sharer.php?u=<?php echo $_SERVER['REQUEST_URI']; ?>">Share on Facebook</a> <br>

使用纯 javascript(href 中的默认 url):

<a id="share_url" href="https://www.facebook.com/sharer/sharer.php?u=">Share on Facebook</a>
<script>
    function myFunction() {
        var el = document.getElementById("share_url");
        el.href += window.location.host;
    }
</script>

演示:http://jsfiddle.net/Lrkjr23o/1/

动态创建 href 属性的其他方法:

<a id="share_url">Share on Facebook</a>
<script>
    function myFunction() {
        var el = document.getElementById("share_url");
        el.href = 'https://www.facebook.com/sharer/sharer.php?u=';
        el.href += window.location.host;
    }
</script>

演示:http://jsfiddle.net/Lrkjr23o/

我假设这里需要客户端专用解决方案,服务器可以是任何东西(PHP,ASP等)您所要做的就是修改锚标记的 href 属性。您可以按 - 修改代码 -

var elm = document.getElementById("demo");
var URLBase = elm.getAttribute("href");
var fullURL = URLBase.window.location.host;
elm.setAttribute("href", fullURL);