【发布时间】:2016-08-03 12:37:14
【问题描述】:
我搜索了其他问题并尝试了建议,但答案似乎没有按我的要求工作。
我正在从数据库表中检索电子邮件并在 iframe 中显示电子邮件的正文。然后我需要在 javascript 文件中获取电子邮件正文的 html。
我尝试过的代码:
var body = $('#email-body').contents().find('html').html();
RETURNS: <head></head><body></body>
var body = '<?php echo $email->body;?>';
RETURNS: Invalid or unexpected token
(most likely due to the linebreaks the HTML has within it.)
似乎第一个选项应该可以,但它没有按要求提取全部内容。
--编辑--
根据 cmets,我尝试了以下操作:
var iframe = document.getElementById('email-body');
var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
var body;
if (iframeDocument) {
body = iframeDocument.documentElement.outerHTML;
}
RETURNS: <html><head></head><body></body></html>
-- 编辑 2--
iframe 是这样填充的:
<iframe id="email-body" src="/api/emails/email/{{{ $email->id }}}/body" onload="resizeIframe(this)"></iframe>
我正在测试的电子邮件:
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
</head>
<body>
<h2>Testing</h2>
<div>And again.</div>
</body>
</html>
【问题讨论】:
-
如果你删除
.find('html')会发生什么...所以var body = $('#email-body').contents().html();甚至将'html'更改为'body'... 所以 var body = $('#email-body')。内容().find('body').html(); -
@JaromandaX 这将返回以下内容:Uncaught TypeError: Cannot read property 'createDocumentFragment' of null OR using body instead return nothing.
-
你试过非jquery链接吗?哎呀,刚刚看到编辑
-
编辑了我的原始帖子以展示我对此的尝试。
标签: javascript php jquery html iframe