[英]Load the page inside of IFRAME using ajax
如何使用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时随机都会改变。
我想将它应用于我的响应工具,如下图所示。 如果您需要实际视图, 请单击此处 。
谢谢你们,如果有一些想法那里。
您仍然可以使用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>'
);
您可以使用几种不同的方法使用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) {}
块。
确保在链接前使用“http://”,例如:
<iframe src="http://www.google.com"></iframe>
如果www.sample.com
位于同一个域中,您可以这样做:
<div id = "targetDiv"></div>
<script>
$('document').ready(function() {
$('#targetDiv').load('www.sample.com');
});
</script>
但是,如果它是同一个域,你可能会使用.load('/');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.