将内容添加到 iframe

发布于 2024-10-30 21:36:18 字数 455 浏览 1 评论 0原文

我正在 iframe 中显示一个页面。以下是标记:

<iframe src="/home/index" width="700px" height="300px"/>

现在,使用 jquery,我尝试将另一个页面的内容添加到此 iframe:

 $('iframe').bind('load',function()
{

$('iframe).contents().find('body').load('/user/profile');
});

页面(用户/个人资料)内容正在呈现,除了 javascript 文件,即 ' 的头部user/profile' 页面包含对 javascript 文件(如 jquery.js、profile.js 等)的引用。我在 firebug 中检查了 iframe 的内容。没有对这些 js 文件的引用。 请帮忙。

i am displaying a page inside a iframe.Following is the markup:

<iframe src="/home/index" width="700px" height="300px"/>

Now , using jquery i am trying to add content of another page to this iframe:

 $('iframe').bind('load',function()
{

$('iframe).contents().find('body').load('/user/profile');
});

Page (user/profile) content is getting rendered except javascript files i.e the head section of 'user/profile' page contains reference to javascript files like jquery.js,profile.js etc.I checked iframe's content in firebug.There is no reference to these js files.
Please help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

陈甜 2024-11-06 21:36:18

当 jQuery 添加包含 script 标签的内容时,这些标签将被删除。其中的代码无需插入到 DOM 中即可执行。这样做是因为当您尝试执行此操作时,Internet Explorer 有时会崩溃。

更重要的是,您会问为什么没有将 /user/profile 上的 head 元素的内容添加到 body 的iframe 页面。您是否真的对这没有按预期工作感到惊讶?

既然您要替换 iframe 的全部内容,为什么不更改它指向的页面呢?我不太明白你为什么用 Javascript 来做这个。

When jQuery adds content containing script tags, those tags are removed. The code within them is executed without being inserted into the DOM. This is done because Internet Explorer will sometimes break when you try to do this.

What's more, you are asking why you aren't getting the contents of the head element on /user/profile added to the body of the iframe page. Are you really surprised that this doesn't work as you expect?

Since you are replacing the whole content of the iframe, why not change the page that it points to? I can't quite see why you're doing this with Javascript.

半城柳色半声笛 2024-11-06 21:36:18

这不起作用,因为您将 head 元素放在 body 中 - 而不是 HTML 的工作方式。

你可以这样做

$('iframe').contents().find('html').load('/user/profile');

......

编辑:

lonesomeday 提出了一个非常好的观点。为什么不直接改变 iframe 的 src 呢?

$('iframe').attr('src', '/user/profile');

This won't work because you are putting the head element inside body - not how HTML works.

You could do

$('iframe').contents().find('html').load('/user/profile');

instead....

EDIT:

lonesomeday makes a very good point. Why not just change the iframes's src?

$('iframe').attr('src', '/user/profile');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文