2010-04-27 66 views
1

我有一個傳統的ASP頁面通過ASP頁面內的iframe加載ASP.net頁面。除了加載ASP.net頁面需要一段時間之外,這很有效。用戶在這裏留下不愉快的經歷,因爲他們所說的只是一個空的空白頁面,直到頁面加載完成。是否有可能修改加載後的傳統ASP頁面iframe內容

我想要做的是加載一個初始的「加載」ASP.net頁面,以便至少用戶顯示一些內容,然後在ASP.net頁面準備好時將正確的ASP.net頁面加載到iframe中。

這可能嗎?我想也許有一點點的JavaScript,但不是100%肯定。

回答

2

沒有 「ASP頁」 一旦它擊中的瀏覽器中,只有生成的HTML。

你這裏有幾個問題:

1)如果你把在I幀的東西,它會被覆蓋,一旦新的頁面加載。所以,你不能使用Iframe中的內容來顯示你的消息。

2)如何判斷時的iframe就裝

你需要確定你的頁面上的iframe的位置和大小。您需要在消息上放置一個元素。修改絕對定位元素的樣式以使用JavaScript覆蓋Iframe。大多數人會使用一個框架,比如jQuery,使它更容易。

然後您需要檢測Iframe何時加載並隱藏此元素。

您可以使用this code來確定的iFrame加載:

function checkIframeLoading() { 
    // Get a handle to the iframe element 
    var iframe = document.getElementById('testIframe'); 

    // Check if loading is complete 
    if (iframe.document.readyState == 'complete') { 
     // The loading is complete, call the function we want executed once the iframe is loaded 
     functionToCallAfterLoading(); 
     return; 
    } 

    // If we are here, it is not loaded. Set things up so we check the status again in 100 milliseconds 
    window.setTimeout('checkIframeLoading();', 100);  
} 
2

您可以使用JQuery在頁面加載後修改iframe。

Another question計算器上已經包含了一個很好的例子:

<html> 
    <head> 
     <script type="text/javascript" src="jquery.js"></script> 
     <script> 
     $(document).ready(function(){ 
      var locations = ["http://webPage1.com", "http://webPage2.com"]; 
      var len = array.length; 
      var iframe = $('#frame'); 
      var i = 0; 
      setInterval(function() { 
        $iframe.attr('src', locations[++i % len]); 
      }, 30000); 
     }); 
    </script> 

相關問題