2016-10-01 1 views
0

페이지가로드 될 때 내 트윗 버튼에 대한 컨텐츠를 생성하지만, 아직 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> 
+0

[동적으로 Tweet 버튼 "데이터 텍스트"내용 변경] (http://stackoverflow.com/questions/10486354/dynamically-change-tweet-button-data-text-contents) – Robiseb

답변

0
내가 할 수있는 방법을 발견

을보십시오, 여기 당신이 알아야 할 무엇 나중에 삭제해야하는 중복 버튼 만 생성).

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"); 

을 만들 그리고 당신은 당신이해야 할 모든 위젯

twttr.widgets.load(); 
에게 다시 후에는

document.querySelector(".quote").appendChild(button); 

로 원하는 목적지를 추가

비동기 적으로로드되기 때문에 load 메소드를 호출하기 전에 검사해야하는지 여부를 알지 못합니다. , 몇 분 동안 다시로드 해 보았지만 아무런 문제도 발견하지 못했습니다. 버튼이 제대로로드되지 않았다면이를 명심하십시오.

1

트위터 위젯 부하를 비동기. widgets.js 바인딩 이벤트

상관없이 코드가 이전 또는 부하 위젯 줄 끝없는

twttr.widgets.load(document.getElementById("tweet")); 
하기 전에 대기 할 필요 비동기 적으로 파일을로드

Twitter documentation

위젯이로드 될 때까지 기다려야합니다.

1) 초기 HTML의 트위터 버튼이 필요 (이 의지가 없습니다 :

이 코드

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); 
     } 
    ); 
  } 
); 
+0

나는 복제 중입니다. twttr은 정의 된 오류가 아니며, HTML로 질문을 업데이트하여 내가 잘못하고 있는지 확인합니다. – Danyx

+0

''twtter' 스크립트는 **'** widgets.js' 전에 수행되어야합니다! 1. twtter 스크립트, 2. widgets.js, 3. script.js – Robiseb

+0

이제 버튼을 어떻게 참조 할 수 있습니까? 이 위젯은 twitter-button-share 클래스를 사용하여 iframe에 대한 내용을 변경하며 더 이상 데이터 텍스트 값을 변경할 수 없습니다. – Danyx

관련 문제