我在我的网页上加载了一个iframe。 30秒后,我想更改iframe的来源以加载其他网站。这很好用jQuery(setTimeout函数),但我的问题是性能。当我更改源代码时,需要15秒将页面加载到iframe中。直到内容被加载后,我一直留在黑屏。一旦页面加载后是否可以更改源代码?有什么我可以在jQuery内预加载网页吗?每30秒更改一次iframe源。
2
A
回答
0
如果您使用ajax调用检索内容,则可以在新内容到达时将旧内容替换为新内容,并且页面不会显示为空白。根据你在做什么,你可以看看jQuery .load()
函数,或者只是使用ajax调用并自己插入内容。
当然,您必须拥有适当的同源特权才能修改iframe的内部结构。
0
您可以在页面上的同一位置放置两个iframe,但其中一个预加载内容,然后在30秒后将它们交换。然后,您更改以前可见的网址,开始将网址加载到该网址中 - 然后重复。
1
您可以编写一个脚本,以检测当页面(在iframe)已完成加载:
// Insert iframe in the page
var $iframe = $('<iframe src="http://www.msn.com/"></iframe>').css({
width: '1px',
height: '1px'
}).attr('frameborder', '0').appendTo('body').data('loaded', 'no');
// Function to execute when the page (in the iframe) has finished to load,
// or when the timeout is over
function iframeIsReady() {
if ($iframe.data('loaded') == 'no') {
$iframe.data('loaded', 'yes').css({
width: '800px',
height: '800px'
});
alert('iframe is ready');
}
}
// Detect when the page (in the iframe) has finished to load
$iframe.load(function ($iframe) {
iframeIsReady();
});
// Add an optional timeout
setTimeout(function() {
iframeIsReady();
}, 15000);
我还添加了15秒的“超时”,如果页面花太多长时间加载。
相关问题
- 1. 从rss链接每隔30秒更改一次网页
- 2. 每30秒调用一次函数
- 3. AudioUnit每30秒录制一次毛刺
- 4. 每30秒运行一次函数javascript
- 5. 每30秒运行一次Android服务
- 6. 每30秒按一次按钮vba
- 7. coreservicesd/lssave每30秒写一次
- 8. jQuery每30秒刷新一次
- 9. 每20秒更改一次iframe的url不与javascript配合
- 10. 如何制作一张每30秒更新一次的图片?
- 11. Android每10秒更改一次图片
- 12. 每10秒更改一次变量值
- 13. 使用远程JSON数据每30秒更新一次MongoDB?
- 14. 如何在android中每30秒更新一次片段视图?
- 15. 每30秒更新一次订单状态
- 16. UILocalNotification每30秒
- 17. 如何每10秒更改iframe
- 18. 从库中获取图像并在sharepoint中每30秒更改一次图像?
- 19. ViewModel每秒更新一次?
- 20. 每30秒更改一个SQL表的数据
- 21. 的Android更新的TextView为每30秒
- 22. 以每30秒快速刷新一次tableview的数据
- 23. ejb轮询器每隔30秒触发一次
- 24. 如何每隔30秒刷新一次ActionScript3代码?
- 25. Javascript - 每30秒播放一次音频剪辑
- 26. 如何每隔30秒刷新一次div?
- 27. Thread.sleep()vs handler.postDelay()每30秒执行一次网络呼叫
- 28. 每30秒拨打一次数据库电话
- 29. 使用std :: chrono :: high_resolution_clock每秒写入一帧30次
- 30. 如何每30秒钟重复一次这个JS函数?
来自不同域的iframe中的内容? – epascarello