使用ajax在IFRAME中加载页面

时间:2015-02-02 01:34:59

标签: javascript jquery html ajax iframe

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

示例,我在下面有这个iframe。

<iframe id="iframe" width="1024" height="600" src="http://www.sample.com"></iframe>

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

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

<iframe id="iframe" width="1024" height="600" src="http://www.sample.com?random=1422841682605""></iframe>
每次加载此iframe时,

随机都会发生变化。

我想将它应用于我的响应工具,如下图所示。如果您需要实际视图 click here

enter image description here

谢谢你们,如果有一些想法那么。

4 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

您可以使用几种不同的方法使用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");

当然,你必须非常小心iframe。如果iframe指向外部域(即:“Cross-Origin”,即:不是托管主网页的同一域),则会违反浏览器安全策略,如果您尝试操作/读取许多内容,则会抛出错误属性。

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

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

iframe.contentWindow.location.href;

但是,如果iframe指向未托管在同一域中的网站,则会再次出现错误。为安全起见,请使用try {} catch (e) {}块。

答案 2 :(得分:1)

请务必在链接前使用“http://”,例如:

<iframe src="http://www.google.com"></iframe>

答案 3 :(得分:1)

如果www.sample.com位于同一个域中,您可以执行以下操作:

<div id = "targetDiv"></div>
<script>
$('document').ready(function() {
    $('#targetDiv').load('www.sample.com');
});
</script>

但是,如果它是同一个域,您可能会使用.load('/');