2013-10-21 58 views
0

我有一個網站有很多的I幀這樣的:緩存靜態HTML頁面與GET變量

<iframes src="expamle.com\page.html?var=blabla&id=42" scrolling="no"></iframe> 

我不得不改變​​每個iFrame的。這些參數用於iframe的javascript中。有沒有什麼辦法緩存(提示瀏覽器)page.html(靜態)一次爲所有變量?

我必須使用iframe,因爲我希望能夠更新此代碼(來自另一臺服務器)&以在另一個作用域中運行它。

+0

你想一次更改所有I幀的變量? – putvande

+0

你能澄清一下 - page.html是否與父頁面在同一個域上? –

回答

1

否 - 任何改變查詢字符串代表瀏覽器的單獨資源。

但是,如果您可以對page.html進行一些細微更改,您可能會獲得該效果。如果你這樣寫:

<iframes src="expamle.com\page.html#var=blabla&id=42" scrolling="no"></iframe> 

注意使用#字符 - 這是關鍵。

查詢字符串變成簡單的「page.html」,並且將以這種方式緩存。但是,該頁面的Javascript將可以訪問變量document.location.hash,該變量將包含「​​」。它將被寫成單個字符串,但解析起來應該不難。一些庫甚至使用該標籤將參數半實時傳遞給iframe以實現IE6兼容性。

0

如果只是在javascript中使用,但真的只有1頁服務器端不使用?但使用#​​它會認爲它是相同的頁面,但在不同的定位點上。因此,如果test.com/#foo被緩存,那麼test.col /#bar也是(相同的頁面,不同的錨點)

-1

可以更新由代碼框架網址:

var fr = document.getElementsByTagName('iframe'); 
var sites = "1.com,2.com".split(","); 

for(var x=0;x<fr.length;x++) { 
    document.getElementsByTagName('iframe')[x].src="http://"+sites[x]; 
}