单击iframe中没有src属性的元素

时间:2015-03-11 05:53:49

标签: javascript jquery iframe

我现在几个小时都在努力解决这个问题。 我试图将点击侦听器附加到iframe中没有src属性的元素。整个页面基本上都是那个坏男孩。

当我使用“inspect element”时,iframe的主体看起来是空的(如果这与它没有src属性有关,那就不知道了。

<iframe id="CoverIframe" name="CoverIframe">
  #document
    <html>
      <head></head>
      <body></body>
    </html>
</iframe>

当我在控制台中输入iframe的ID时,它只返回null,这阻止我通过contents()。find()或其他任何内容检查它包含的元素。我只能通过显示源代码(右键单击&gt;参见源代码)来查看其内容(以及页面上的元素)。

对此有何想法?是因为缺少src属性吗?我能以任何方式绕过它吗?

谢谢, 亚历

1 个答案:

答案 0 :(得分:0)

正如您所注意到的,您不能像这样设置iframe的innerDocument 但是,您可以使用其( html-5 only srcDoc属性进行设置,

<iframe id="CoverIframe" name="CoverIframe" srcdoc="
    <html>
      <head></head>
      <body>hello</body>
    </html>"
        ></iframe>

或使用data:text/html;charset=utf-8,<html><head></head><body>hello</body></html>"

<iframe id="CoverIframe" name="CoverIframe" src="data:text/html;charset=utf-8,<html>
      <head></head>
      <body>hello</body>
    </html>"
        ></iframe>

但是对于后者,您很快就需要encodeURI()您的页面 所以最好的可能是使用javascript:

<script>
  var yourHTML = "<html><head></head><body>hello</body></html>";
  function loadFrame(e){e.contentDocument.write(yourHTML)};
</script>

<iframe id="CoverIframe" name="CoverIframe" onload="loadFrame(this)">

►  Show code fiddle