JSFiddle - React, Tailwind, and code Playground
by Todd Levy
HTML
<body>
<div class="social_share">
<a href="https://twitter.com/intent/tweet" data-longurl="http%3A%2F%2Fwww.md.com" class="twitter">Tweet</a>
</div>
</body>
JavaScript
window.twttr = (function (d,s,id) {
var t, js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return; js=d.createElement(s); js.id=id;
js.src="https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs);
return window.twttr || (t = { _e: [], ready: function(f){ t._e.push(f) } });
}(document, "script", "twitter-wjs"));
(function($) {
// DEFINE THE TWEET BUTTON PLUGIN
$.fn.tweetButtonV2 = function() {
this.each(function() {
var that = this;
$(that).unbind('click').on('click', function (event) {
event.preventDefault();
// GET LONG URL FROM DATA-LONGURL ATTRIBUTE
// ATTRIBUTE VALUE SHOULD BE URL ENCODED
var long_url_enc = $(that).data('longurl');
// GET PAGE TITLE FROM TITLE TAG
var page_title = $('title').text();
var page_title_enc = encodeURIComponent(page_title);
// GET PAGE META DESCRIPTION
var page_meta = $('meta[name=description]').attr("content");
var page_meta_enc = encodeURIComponent(page_meta);
if($(that).attr('data-twitterurl')) {
window.open($(that).attr('data-twitterurl'), 'twitter', 'width=800,height=500');
} else {
$.post('https://www.mdsld.com/md_api/bitly/user/link_save', {long_url: long_url_enc, title: page_title_enc, description: page_meta_enc}, function(obj){
if(obj.status == 'success') {
var short_url_enc = obj.url;
var twitter_text = page_title_enc + '%20::%20';
// FORMAT TWITTER ENDPOINT
var twitter_endpoint = 'https://twitter.com/intent/tweet?via=md_dotcom&text='+twitter_text+'&url='+short_url_enc;
// UPDATE LINK URL TO NEW ENDPOINT
$(that).attr('data-twitterurl', twitter_endpoint);
window.open(twitter_endpoint, 'twitter', 'width=800,height=500');
}
}, 'json');
}
});
});
return this; //...