[英]Changing the value of data-text attribute of the Twitter button dynamically based on input data from an API using jquery
[英]Dynamically changing data-text on twitter widget
我會在頁面加載時為tweet按鈕生成內容,但是即使我的腳本要首先運行widget.js仍在運行,我還是嘗試使用twttr.widget.load()來更新該值,但是沒有用。
初始加載后,是否可以更新twitter按鈕的值? 還是使其在內容加載后初始化?
下面是我使用的代碼。
我也嘗試過在HTML上的腳本前后放置widget.js。
text = quote[0].content.substring(3, quote[0].content.length - 5);
document.querySelector("#quote").innerHTML = text;
document.querySelector(".twitter-share-button").setAttribute("data-text", text);
twttr.widgets.load(document.getElementById("tweet"));
的HTML
<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
<script>window.twttr = (function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0],
t = window.twttr || {};
if (d.getElementById(id)) return t;
js = d.createElement(s);
js.id = id;
js.src = "https://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
t._e = [];
t.ready = function(f) {
t._e.push(f);
};
return t;
}(document, "script", "twitter-wjs"));</script>
<script src="script.js"></script>
twitter小部件異步加載。
異步加載widgets.js文件將需要您等待綁定事件
無論您的代碼是在加載小部件行之前還是之后,
twttr.widgets.load(document.getElementById("tweet"));
您必須等待小部件已加載。
試試這個代碼
twttr.ready(
function (twttr) {
twttr.events.bind(
'loaded',
function (event) {
var text = quote[0].content.substring(3, quote[0].content.length - 5);
document.querySelector("#quote").innerHTML = text;
document.querySelector(".twitter-share-button").setAttribute("data-text", text);
}
);
}
);
我找到了一種方法,這是您需要知道的:
1)不需要在初始HTML中有一個twitter按鈕(這只會創建一個重復的按鈕,您稍后需要將其刪除)。
2)只需創建按鈕
var button = document.createElement('a');
button.classList += "twitter-share-button";
button.innerHTML = "Tweet";
button.setAttribute("data-text", text);
button.setAttribute("data-via", via);
button.setAttribute("href", "https://twitter.com/intent/tweet");
並將其附加到您想要的位置
document.querySelector(".quote").appendChild(button);
之后,您需要做的就是重新加載小部件
twttr.widgets.load();
由於它是異步加載的,因此我不知道是否需要在調用load方法之前進行檢查,因此我已經重新加載了幾分鍾,並且沒有發現任何問題,如果您的按鈕不正確,請記住這一點。正確加載。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.