2010-04-07 55 views
1

前言:我認爲自己在導軌上的ruby「稍微有效」,並且在JavaScript中是一個完整的新手。另外,是的,我已經安裝了jQuery和相關的插件,而不是默認的Prototype庫。
我處於一種情況,即我從一個iframe外部表中抽取一張表格(這是照顧所有內部JS對我來說),使得當表格的一部分被點擊時,一個TD將獲得類「活性。」我想要做的是採取這個信息(我假設我可以得到它在字符串格式),並將其傳遞給一個方法(在我的控制器,我假設)將解析的HTML,拔出相關信息,然後在解析信息的同一控制器中調用創建方法,最終結果是該表中的新項目。來自外部iframe的Javascript html抓取+調用數據的控制器動作

我至今是JavaScript的,我相信這是正確的:

<script type="text/javascript"> 
    var ImportInfo = function() { 
    var info = $('td.active').html(); 
    // call controller action which parses the given string, 
    //checks for existence in database, and adds new row if needed 
} 

$("#Import").click(ImportInfo); 
</script> 

,當然,使用id =按鈕「導入」。

我已經看了這個問題:Using jQuery To Call A Controller Action但是我有點不確定如何調用控制器動作來將td的內容作爲字符串傳遞。這是可以用jQuery post方法嗎?

ADDED信息: 我的iframe:

<iframe id='locator' src="http://hosted.where2getit.com/wafflehouse/indexnew.html" width="740" height="700" marginheight="0" marginwidth="0" scrolling="no" frameborder="0" align="bottom" name="plg_iframe">No Frames</iframe> 

回答

1

太糟糕了,你掉原型 - 我可以幫你更好的;-)

jQuery的專家隨時糾正我,但我相信你想是這樣的:

<script type="text/javascript"> 
    var ImportInfo = function() { 
    var info = $('td.active').html(); 
    // call controller action which parses the given string, 
    //checks for existence in database, and adds new row if needed 
    $.ajax({ 
    url: '/controller/action', 
    data: { paramName: info } 
    }) 
} 

$("#Import").click(ImportInfo); 
</script> 

如果你想與原型做到這一點,你可以使用:

<script type="text/javascript"> 
    var ImportInfo = function() { 
    var info = $$('td.active')[0].innerHTML; 
    // call controller action which parses the given string: 
    new Ajax.Request('/controller/action',{ 
    method: 'post' 
    parameters: { paramName: info } 
    }) 
} 

$("#Import").click(ImportInfo); 
</script> 

現在,亞特重讀你的問題,我看到<td>你想要得到的數據是從來自不同的站點的iFrame ,這是正確的?如果是這樣,由於安全限制,JavaScript將無法訪問該iFrame。請參閱this MSDN article或谷歌的「跨域iframe安全性」。如果這是您的問題,請提供更多有關這兩個域名的詳細信息......您可能會也可能不會走運。

+0

嘿,如果你可以幫我從原型開始,我會更願意轉回來。 這是項目中JS的第一個(也可能是唯一的)位,所以它不是好像它退回了太多的步驟。我轉換的唯一原因是因爲我談到的同事推薦使用Prototype的jQuery。 – Zind 2010-04-08 02:24:35

+0

@Zind:看到我編輯的答案。請注意,這聽起來像你想做的事是不可能的,由於跨域iframe安全 – Josh 2010-04-08 12:45:34

+0

是的,我注意到,這可能是一個問題,當我在螢火蟲愚弄只是試圖看看我到目前爲止,甚至獲取了正確的數據 - 我可能實際上運氣不好,但是無論如何,感謝JS的幫助,如果我最終能夠跨越這個鴻溝,它會派上用場。 – Zind 2010-04-08 13:09:02

相關問題