将变量合并到默认的推文查询字符串参数中

时间:2014-07-21 23:11:35

标签: javascript php html twitter

所以我正在建立一个包含简单的javascript / HTML计时器的网站。下面列出了计时器的代码。

我将推文系统纳入网站。我的目的是通过这个推文按钮发送推文"我持续了(时间变量)"。由于twitter API似乎有点限制性,我在执行此操作时遇到了麻烦。配置默认推文文本的唯一方法是通过查询字符串参数。有没有办法将变量(从下面的代码中)合并到查询字符串参数中,还是我需要以更复杂的方式执行此操作?

我已经考虑过使用php进行变量系统,但是这段代码在执行时需要非常轻量级,因此我想避免使用php。即使我用php做过,我也会遇到同样的问题:如何将变量合并到一个设置默认推文的查询字符串参数中。

TL; DR:如何将变量合并到查询字符串参数中(关于twitters默认的tweet文本API)。

以下是twitter处理默认推文文本的方式:

 <a href="https://twitter.com/share*?text=I%20lasted%20#seconds*" class="twitter-share-  button" data-lang="en">Tweet it</a>   

这是我正在使用的计数器的代码。

<label id="minutes">00</label>:<label id="seconds">00</label>
<script type="text/javascript">
    var minutesLabel = document.getElementById("minutes");
    var secondsLabel = document.getElementById("seconds");
    var totalSeconds = 0;
    setInterval(setTime, 1000);

    function setTime()
    {
        ++totalSeconds;
        secondsLabel.innerHTML = pad(totalSeconds%60);
        minutesLabel.innerHTML = pad(parseInt(totalSeconds/60));
    }

    function pad(val)
    {
        var valString = val + "";
        if(valString.length < 2)
        {
            return "0" + valString;
        }
        else
        {
            return valString;
        }
    }
</script>

谢谢

1 个答案:

答案 0 :(得分:0)

这是:http://jsfiddle.net/7zKAy/

正如您所见,我通过javascript更改了链接的href。忽略CSS和样式,它只是为了展示和更好的演示。

首先获取您的链接参考并设置您将要使用的网址的基础:

var butt = document.getElementById('sharebutton');

var basehref = "https://twitter.com/share?text=";

然后,当您要发送文本时,请构建完整的URI。这是一种方法:

// so i want to add "I lasted 345345334 seconds" to the text

basehref = "https://twitter.com/share?text=" + "\"" + encodeURIComponent("I lasted 345345334 seconds") + "\"";

请注意,我在字符串末尾手动添加",并仅使用encodeURIComponent对内容进行编码,如果您要编码 part ,则使用encodeURI(basehref); URI而不是全部。如果我要做一件事,我会这样做:

butt.setAttribute('href', basehref);

然后,将这个新的href附加到你的按钮:

href

你已经完成了。当您将鼠标悬停在浏览器上时,浏览器可能会对该链接进行转义,因此在小提琴中,请检查您的控制台,以查看应用于{{1}}属性的实际字符串。