繁体   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