set Tweet-button 'data-text" - Inhalt dynamisch mit javascript, oder..?

Hier ist der funktionierende code in einem Formular, das zeigt ein Tweet-Schaltfläche, der die Schaltfläche auf einem Formular, das zeigt mehrere Bilder-klickt der Benutzer auf eines der Bilder, wird es der 'selected' - Bild und den Tweet-button soll tweet das ausgewählte Bild den Namen und die url:

      <a id="tweetBtnId" href="https://twitter.com/share" class="twitter-share-button" 
         data-text="Check me out on OurWebSite!"
         data-url=http://$ourSiteURL
         data-via=http://$ourSiteURL data-size="medium" data-count="none">Tweet</a>
     <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0]; 
            if(!d.getElementById(id)){js=d.createElement(s); js.id=id; 
              js.src="//platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js,fjs);}}
                (document,"script", "twitter-wjs");</script>   

Ich habe ein 'onclick()' Prozedur für das div, das zeigt das Bild. Wenn der Benutzer klickt auf eines der Bilder, seine div onclick () - handler aufgerufen wird und setzt das Bild der 'currentlySelectedImage' auf der Seite-und die onclick () - handler muss dann aktualisieren Sie den Tweet-button 'data-text" - Attribut mit dem Namen der gerade ausgewählten Bild:

          //This is part of the code of the 'onclick()' handler for
          //the image being selected. 
         <script> 
         function handleImageOnClick()
         {
           var myDynamicTweetText = "name of currently-selected image goes here";
           var elem = document.getElementById("tweetBtnId");
           alert("The elem is: " + elem);  //elem IS NULL !!  Dagnabbit.

           //this fails because 'elem' is null
           elem.setAttribute("data-text", myDynamicTweetText);

           //other onclick() code not shown for brevity......
         }
         </script>

Muss ich dynamisch ändern Sie die "Daten-text' - Attribut den Wert in die Tweet-Taste, um den Namen des ausgewählten Bildes. Ich habe den javascript-code oben was nicht,-- das 'elem' aus den erhaltenen code hier ein:

    var elem = document.getElementById("tweetBtnId");

null ist (denke ich), weil diese Linie in den Twitter-tweet button-code oben:

   if(!d.getElementById(id)){js=d.createElement(s); js.id=id;

Ich bin mir nicht sicher, aber es sieht aus wie der Twitter-Tweet-button Standard-Skript überschreibt den Versuch
fügen Sie ein 'id' - Attribut, um den Tweet-button.

Werden Sie sehen, dass ich die id="tweetBtnId" auf den Tweet-button oben, also konnte ich den Zugriff auf den Tweet-button in meinem Bild-Auswahl onclick () - handler oben, dann setzen Sie die 'Daten-text' auf den Namen der gerade ausgewählten Bild.

Ich nur Zweifel, dass Twitter die design-Ziel für den Tweet-button war "we' re gonna dumm dieser Sauger WEG nach unten, wir werden nur lassen diese Tiere wählen Sie EINE Daten-text Wert - jeder Tweet button hat einen hart-codierten, "Einmal-auf-der-Seite" Daten-text-Attribut - Witz ist auf Sie, wenn Sie versuchen, dynamisch zu ändern, den Tweet-button-Daten-text-Attribut."

Ich brauche, um diese arbeiten-irgendwelche Ideen?

  • Nur bestätigte mit Firebug -- die id des Tweet-button 'b', nicht einmal eine Nummer. Das twitter script ist nicht lassen Sie die getElementById () - sehr leicht dann.
  • Wow ich kann hören, wie die Schnecke vor meinem Fenster an zu Schnarchen. Ruhig hier heute. Ein SUPER-notdürftigem Abhilfe wäre zu schaffen, ein Formular mit einem versteckten Feld und eine form.submit() auf, die es in meinem onclick () - handler, die aufgerufen wird, wenn der Benutzer klickt auf ein Bild. Dann könnte ich eine PHP-variable mit dem Namen "ausgewähltes Bild' und leiten Sie zurück auf die ursprüngliche Seite, und verwenden Sie die PHP-variable für die 'Daten-text' - Teil des Tweet-button, so dass, wenn der Benutzer tweets die PHP-variable hat, die der ausgewählten Bild-name zugewiesen 'Daten-text in den tweet-button. Ein server-round-trip-für einen tweet! DAGNABBIT.
  • Der Grund ist niemand, diese Frage zu beantworten ist, da es so lang und voll von code, das ist wahrscheinlich ohne Bezug zu dem eigentlichen Kern des Problems.
  • Ich habe das gleiche problem
  • Welche Probleme erleben Sie? Es scheint für mich arbeiten? jsbin.com/ivevif/2 (geprüft mit firebug...)
  • Sorry, daß Sie nicht mehr Antwort zuvor. Lange Fragen und code sind nicht das problem (dies ist eine Entwickler-Website, nachdem alle!) es ist einfach eine Frage, wer ist bereit zu spielen mit dem problem zu der Zeit.

InformationsquelleAutor wantTheBest | 2012-03-13
Schreibe einen Kommentar