Dan382
Dan382

Reputation: 986

Using jQuery to activate addThis iFrame

I’m trying to use jQuery to click a link in an iFrame if the URL contains specific text. The iFrame contains a twitter share link provided by addThis.

I think the iFrames are the issue but I can’t see how to get it to play ball.

My Code:

<script type="text/javascript">
$(function(){
    /*If the url contains*/
    if(window.location.href.indexOf("/test.html") > -1) {
            /*Wait for the iframe */
           $('#twitter-widget-0').ready(function () {
                /*Click link in .btn-o*/
                $(".btn-o").trigger("click");
            });
    }
});

Link to dropbox test site with addThis code: https://dl.dropboxusercontent.com/u/80852247/Demo/test.html#.UoNx9_m-2gL

I'm not getting any errors, I simply think that '.btn-o' isn't being detected because its loading within an iFrame.

Any work arounds?

Upvotes: 0

Views: 398

Answers (2)

Nickolas
Nickolas

Reputation: 101

Try using the twitter api.

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

twttr.widgets.createShareButton(
  'http://benward.me',
  document.getElementById('new-button'),
  function (el) {
    console.log("Button created.")
  },
  {
    count: 'none',
    text: 'Sharing a URL using the Tweet Button'
  }
);

twttr.ready(function (twttr) {
  // Now bind our custom intent events
  twttr.events.bind('click', clickEventToAnalytics);
  twttr.events.bind('tweet', tweetIntentToAnalytics);
  twttr.events.bind('retweet', retweetIntentToAnalytics);
  twttr.events.bind('favorite', favIntentToAnalytics);
  twttr.events.bind('follow', followIntentToAnalytics);
});

https://dev.twitter.com/docs/intents/events

Upvotes: 2

user557419
user557419

Reputation:

You can't use javascript to get things through an iFrame, that would be phishing (which is illegal) and is blocked by default by most browsers to prevent website scams.

You'll need to find another way to get that Share button onto your page.

Upvotes: 1

Related Questions