2012-06-14 32 views
2

想要攔截點擊進入股票的twitter按鈕。我試圖記下點擊並簡單地更新我在這些點擊的內部計數器上。通過運行一個ajax請求到一個棘手的頁面。可以點擊這個iframed元素被抓到?已經嘗試過很多次,這裏是一個精簡版。試圖在div中包裝元素無濟於事。通過jquery通過Twitter內部計數器的iframe攔截點擊進入twitter按鈕

<!-- START TW SHARE --> 
<a id="XXX" href="https://twitter.com/share" class="twitter-share-button" data-url="." data-text="Join the Challenge &amp; Join now:" data-size="large" data-related="sample data" 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> 
<!-- END TW SHARE --> 

/// VIA JQuery 
     $("XXX']").click(function() { 
     $.ajax({url: 'plus.php?ID=<?php echo $ID;?>' }); 
     }); 
+0

我相信你會被同源策略 – Basic

+0

是被阻止,我有也試圖把它放在一個PHP抓取URL中,並且它在抓取時工作,而不是在點擊。似乎是在iframe上沒有ID進行鎖定的問題。 – Stuff

回答

0

我有一個想法,但我不知道它是否會工作(從未嘗試過)。我認爲如果iframe不在同一個域中,jquery的東西將無法工作。下面是jQuery的iframe的攔截,如果是同一個域

<iframe id="myframe" src='/'></iframe> 

JS

$('#myframe').contents().find('body').bind('click', function(e) { 

    alert('clicked'); 
}); 

但我不認爲這個工程,因爲Twitter是在不同的域所以我當時的想法是做一個空白頁面裏面有twitter按鈕,然後用你的iframe和我們上面的代碼調用那個頁面。從技術上講,你仍然點擊不同的域名內容,但由於你原來的電話是你的域名,也許它會註冊?你可以嘗試一下,我現在要測試一下。這是一個長鏡頭。

編輯:nope沒有工作!

+0

欣賞想法和你的目標。已經嘗試過這一點,並且一個問題是twitter不會識別iframe(無論如何)。我認爲必須有一些方法來捕捉點擊的座標?我一直試圖把它放在一個div並捕獲內部div點擊。沒有成功的這種類型的決心。我只是想讓jquery承認點擊 - 沒有更多。 – Stuff

+0

只要你知道它在頁面上的什麼位置,你就不需要該框架的ID ...'$(「#ContainerDiv iframe」)。contents().....'。我不相信設置內容將有所幫助 - 否則你可以創建一個100%高度/寬度的iframe,將其指向登錄頁面並竊取密碼 – Basic

+0

是看到API選項的答案,跨域iframe跟蹤不應該工作由於安全問題 – Huangism

0

您將需要使用Twitter API來完成此操作。

我會開始研究他們的Javascript Events,它可以測量與推文按鈕的交互。

編輯:特別,它是click方法,你的後:

Receive an event when the user has clicked the Tweet Button or Follow Button.

"tweet" — the click occurred on the Tweet Button itself, invoking an Intent (which will trigger an Intent Event Callback when complete).