我在我的網頁上加載了一個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. coreservicesd/lssave每30秒寫一次
- 2. 每30秒運行一次Android服務
- 3. AudioUnit每30秒錄製一次毛刺
- 4. 每30秒調用一次函數
- 5. Android每10秒更改一次圖片
- 6. 使用遠程JSON數據每30秒更新一次MongoDB?
- 7. 每30秒更新一次訂單狀態
- 8. ViewModel每秒更新一次?
- 9. 的Android更新的TextView爲每30秒
- 10. 如何每30秒鐘重複一次這個JS函數?
- 11. 如何每隔30秒刷新一次ActionScript3代碼?
- 12. Javascript函數,需要每30秒過去一次減量
- 13. 如何每30秒調用一次函數?
- 14. 每30秒撥打一次數據庫電話
- 15. 是否每隔30秒設置一次報警?
- 16. Thread.sleep()vs handler.postDelay()每30秒執行一次網絡呼叫
- 17. 以每30秒快速刷新一次tableview的數據
- 18. 如何在android中每30秒執行一次查詢?
- 19. 使用std :: chrono :: high_resolution_clock每秒寫入一幀30次
- 20. 用三種顏色每30秒更改視圖顏色
- 21. 每隔n秒更換一次圖像源wp7
- 22. 平滑表現,活動圖形每隔1/30秒更新一次
- 23. iPhone CLLocationManager每0.5秒更新一次
- 24. Android Studio每5秒更新一次textview
- 25. 每3秒更新一次TextView值
- 26. jQuery image src每8秒更換一次
- 27. 每N秒更新一次TextView?
- 28. Silverlight 1秒DispatcherTimer只在某些機器上每隔30秒發射一次
- 29. jsf 2:如何使Primefaces線圖每隔1秒更改一次?
- 30. 如何每秒更改一次課程的價值?
來自不同域的iframe中的內容? – epascarello