我在我的網頁上加載了一個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