所以我正在建立一个包含简单的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>
谢谢
答案 0 :(得分:0)
正如您所见,我通过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}}属性的实际字符串。