0

如果 URL 包含特定文本,我正在尝试使用 jQuery 单击 iFrame 中的链接。iFrame 包含一个由 addThis 提供的 twitter 分享链接。

我认为 iFrame 是问题所在,但我不知道如何让它发挥作用。

我的代码:

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

使用 addThis 代码链接到保管箱测试站点:https ://dl.dropboxusercontent.com/u/80852247/Demo/test.html#.UoNx9_m-2gL

我没有收到任何错误,我只是认为“.btn-o”没有被检测到,因为它加载在 iFrame 中。

有什么解决办法吗?

4

2 回答 2

2

尝试使用 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

于 2013-11-13T13:04:32.543 回答
1

您不能使用 javascript 通过 iFrame 获取内容,这将是网络钓鱼(这是非法的)并且默认情况下被大多数浏览器阻止以防止网站诈骗。

您需要找到另一种方法将“共享”按钮放到您的页面上。

于 2013-11-13T13:03:24.577 回答