我现在几个小时都在努力解决这个问题。 我试图将点击侦听器附加到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属性吗?我能以任何方式绕过它吗?
谢谢, 亚历
答案 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)">