2014-11-05 40 views
0

有點困惑。我正在嘗試搜索iframe的內容並點擊其中的鏈接。鏈接是'Attack'。找到最接近的tr ...腳本搜索祖先?

<script> 
setTimeout(function() { window.location.reload(); }, 1000); // 1 seconds, e.g. 

$(document).ready(function() { 
$('a[href*="5562089"]', $("game").contents()).closest('tr').find('.fightActionInnerInner').parent("a").trigger("clic k"); 
}); 
</script> 


<iframe src="http://vl.storm8.com/hitlist.php" width="100%" height="800px" id="game"></iframe> 

這裏是我想與之交互的iframe中的HTML。

<td class="fightMobster"> 
    <div> 
     <a href="/profile.php?puid=5562089&formNonce=34947b8ffc73e8ceafabae71…94f&setTab1Badge=&h=2d55f5781bfe888b47d7f5c9dbc27df2f663347f"> 
      Lord Pookie 
     </a> 
    </div> 
    <div> 
     Lvl 212 Daywalker 
    </div> 
</td> 
<td class="fightSp"></td> 
<td class="fightMobSize"> 
    <span class="cash"> 
     <span style="white-space: nowrap;"> 
      <img width="15" height="14" style="padding-right:2px" src="http://static.storm8.com/zl/images/flesh.png?v=330"></img> 
      15,300 
     </span> 
    </span> 
</td> 
<td class="fightSpLg"></td> 
<td class="fightAction"> 
    <script> 
     function fsb99995143() { 
      var b=… 
    </script> 
    <a onclick="return fsb99995143();" href="/hitlist.php?tab=fight.php&action=fight&hitlistId=99995143&f…1b4b9390bee9a194f&h=284e4fe4946e6fb8af3a662f4583454eebc8bd23"> 
     <div class="fightActionInner"> 
      <div class="fightActionInnerInner"> 
       Attack 
      </div> 

我很困惑。腳本刷新頁面,但似乎不想單擊那裏的鏈接。我究竟做錯了什麼?

+0

嘗試更換「準備」與「載「in $(document).ready – 2014-11-05 11:46:33

+0

那麼你有一個超時重新加載頁面....看起來很奇怪。 – epascarello 2014-11-05 11:49:25

+0

@FrederikWitte感謝您的回覆,但之後仍然沒有變化我害怕:( – AdamH 2014-11-05 11:49:56

回答

0

下面一行是無用因此將其刪除:

document.getElementById('game').contentWindow.document.body.innerHTML; 

首先,你不看在iframe的代碼,您選擇在當前窗口元素。所以你需要改變代碼來查看iframe。

其次,contains selector看文本,而不是屬性。你想使用attribute contains selector

變化

$('a:contains("5562089")') 

$('a[href*="5562089"]', $("game").contents()) 

,我不知道爲什麼你點擊股利,而不是實際鏈接本身。

$('a[href*="5562089"]', $("game").contents()).closest('tr').find('.fightActionInnerInner').parent("a").trigger("click"); 

並希望iframe在您嘗試點擊它時完全加載。而如果函數的名稱不會改變,你可以只調用函數下面的代碼

$('#game')[0].contentWindow.fsb99995143(); 
+0

我改變了我的代碼以匹配你的代碼,但仍然沒有變化,是因爲它搜索頁面而不是DOWN? – AdamH 2014-11-05 12:00:03

+0

最新更改後仍然沒有變化:/ – AdamH 2014-11-05 12:16:41

+0

lol,y我們的代碼沒有看iframe中的代碼... – epascarello 2014-11-05 12:32:42

0

嘗試點擊鏈接,如果鏈接包含的東西:

var th = $("a").attr("href"); 
var st = "5562089"; 
if(th.indexOf(st)!=-1){ 
    //Do your implementation 
}