【问题标题】:jQuery: clicking on a table located in an iframejQuery:单击位于 iframe 中的表
【发布时间】:2017-10-18 05:47:55
【问题描述】:

我在 iframe 中有一个普通的 html 表格,我想从父页面访问它(是的,它们在域和服务器上) 我已经尝试了各种:

$("#Iframe").contents().find("#mytable td");

我认为它根本没有检测到我的表格单元格或表格。 我确实想在上面做一个活动。

       $("#mytable td")         
        .mousedown(function () 
        {
            isMouseDown = true;
            $(this).toggleClass("highlighted");
            isHighlighted = $(this).hasClass("highlighted");
            return false;
        })
        .mouseover(function () {
          if (isMouseDown) {
            $(this).toggleClass("highlighted", isHighlighted);
          }
        })

此事件在链接 css 样式的单个页面上完美运行,但在使用 iframe 时我应该怎么做?在 iframe 中检测我的表格的正确句子是什么?

【问题讨论】:

  • parent.opener.document.getElementById("street1").value = street1; 你可以像这样从 iframe 设置父元素
  • 很多建议here

标签: javascript jquery html iframe html-table


【解决方案1】:

确保选择器 #Iframe 实际上作为 ID 在您的 iframe 元素上。

然后你可以在你的javascript中设置这样的东西......

var mframe = $('#Iframe').contents();
var mtable = mframe.find('#mytable td');

然后用mtable进城,都在$(window).load(function(){...}

【讨论】:

  • 是否使用 $(window).load 将确保在加载 iframe 后绑定事件? iframe 加载和文档加载是两个不同的东西。请注意,如果 iframe 来自外部域,它将不起作用。
  • 您是否可以直接控制您的 iframe 内容(即它是否来自您自己的服务器?)
  • 感谢您的回答,但它仍然无法正常工作。我可以在 iFrame 准备好时触发警报,但在我的桌子准备好时不会。我正在处理的网站中令人讨厌的事情是,当单击下拉列表时,我的表格就会启动。否则没有桌子。但有时我可以在我的表格准备好但表格未显示时触发警报。知道如何解决这个问题吗?
  • 是的,我可以控制 iframe 内容,就像我说的,它位于同一服务器和域上。但是由于一些未知的原因,没有 css 或 javascript 直接在这个 iframe 中工作。它可以从父页面工作。有什么东西可以限制在我的 iframe 中使用 css 和 javascript 吗?我想不出那样的事情。当然,如果我可以只放我想要的 javascript,最好直接从 iframe 中做。它只是一个没有其他任何东西的php页面。它只会“呼应”一些 html 来创建表格。
  • 查看iframe内的源代码,当iframe完全加载后,复制粘贴到jsfiddle页面中,方便查看。从那时起,我们应该能够找到您不能直接应用 Jquery 的原因。
猜你喜欢
  • 2012-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-22
  • 1970-01-01
  • 1970-01-01
  • 2011-03-25
  • 1970-01-01
相关资源
最近更新 更多