簡體   English   中英

Javascript HTML從外部iframe抓取+調用帶有數據的控制器操作

[英]Javascript html grab from external iframe + calling a controller action with data

前言:我認為自己在使用Rails的紅寶石方面“稍微有效”,並且是使用javascript的完整新手。 另外,是的,我已經安裝了jQuery和關聯的插件,而不是默認的Prototype庫。
我處於一種情況,我從iframe的異地提取表(這為我處理了所有內部JS),因此當單擊表的一部分時,td將獲得“活動”類”。 我想做的就是獲取此信息(我假設我可以以字符串格式獲取它),並將其傳遞給將解析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 =“ Import”的按鈕。

我已經看過這個問題: 使用jQuery調用控制器動作,但是對於如何調用控制器動作以將td的內容作為字符串傳遞,有些不確定。 這對jQuery post方法可行嗎?

添加的信息:我的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>

可惜您放棄了原型-我本可以為您提供更好的;-)

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。 請參閱此MSDN文章或google,以獲取“跨域iframe安全性”。 如果這是您的問題,請提供有關這兩個域的更多詳細信息……您可能會走運,也可能不會走運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM