使用ajax在IFRAME中加载页面

Ant*_*bon 7 html javascript ajax iframe jquery

如何使用IFRAME加载页面?我在想这是否可能..

例如,我在下面有这个iframe.

<iframe id="iframe" width="1024" height="600" src="http://www.sample.com"></iframe>
Run Code Online (Sandbox Code Playgroud)

我希望www.sample.com页面加载到这个iframe中,而不是简单地将URL添加到src属性中,而是使用ajax获取当前页面数据并使用IFRAME标记加载.我正在考虑这个问题,因为我在大多数时候都在IFRAME缓存上遇到了很大的问题.

我也试过这个东西但是,它在我的结尾并不完美.

<iframe id="iframe" width="1024" height="600" src="http://www.sample.com?random=1422841682605""></iframe>
Run Code Online (Sandbox Code Playgroud)

每次加载这个iframe时随机都会改变.

我想将它应用于我的响应工具,如下图所示.如果您需要实际视图,请单击此处.

在此输入图像描述

谢谢你们,如果有一些想法那里.

c-s*_*ile 5

您仍然可以使用src,但要提供数据URL,如下所示:

src = 'data:text/html;charset=utf-8,' + 
    encodeURIComponent( // Escape for URL formatting
        '<!DOCTYPE html>'+
        '<html lang="en">'+
        '<body><h1>Another document!</h1></body>'+
        '</html>'
    );
Run Code Online (Sandbox Code Playgroud)


DRA*_*RAB 3

您可以通过几种不同的方法使用 Javascript 更改 iframe 的位置。

var frame = document.getElementById("iframe");
frame.src = "http://www.sample.com";
frame.contentWindow.location = "http://www.sample.com";
frame.contentWindow.open("http://www.sample.com");
Run Code Online (Sandbox Code Playgroud)

当然,您必须非常小心使用 iframe。如果 iframe 指向外部域(即:“跨源”,即:与托管主网页的域不同),您将违反浏览器安全策略,并且如果您尝试操纵/读取许多内容,则会抛出错误特性。

另请注意,通过更改 iframe 元素的src属性,iframe 将自动移动到新位置。但是,如果您使用我建议的其他两种方法之一,srciframe 元素的属性将不会更改(即使 iframe 的内容指向新位置)。

如果您需要获取 iframe 的位置,您可以尝试:

iframe.contentWindow.location.href;
Run Code Online (Sandbox Code Playgroud)

但是,如果 iframe 指向不在同一域上托管的站点,则会导致错误。为了安全起见,请使用try {} catch (e) {}块。