我有一個網站有很多的I幀這樣的:緩存靜態HTML頁面與GET變量
<iframes src="expamle.com\page.html?var=blabla&id=42" scrolling="no"></iframe>
我不得不改變每個iFrame的。這些參數用於iframe的javascript中。有沒有什麼辦法緩存(提示瀏覽器)page.html
(靜態)一次爲所有變量?
我必須使用iframe,因爲我希望能夠更新此代碼(來自另一臺服務器)&以在另一個作用域中運行它。
我有一個網站有很多的I幀這樣的:緩存靜態HTML頁面與GET變量
<iframes src="expamle.com\page.html?var=blabla&id=42" scrolling="no"></iframe>
我不得不改變每個iFrame的。這些參數用於iframe的javascript中。有沒有什麼辦法緩存(提示瀏覽器)page.html
(靜態)一次爲所有變量?
我必須使用iframe,因爲我希望能夠更新此代碼(來自另一臺服務器)&以在另一個作用域中運行它。
否 - 任何改變查詢字符串代表瀏覽器的單獨資源。
但是,如果您可以對page.html進行一些細微更改,您可能會獲得該效果。如果你這樣寫:
<iframes src="expamle.com\page.html#var=blabla&id=42" scrolling="no"></iframe>
注意使用#
字符 - 這是關鍵。
查詢字符串變成簡單的「page.html」,並且將以這種方式緩存。但是,該頁面的Javascript將可以訪問變量document.location.hash
,該變量將包含「」。它將被寫成單個字符串,但解析起來應該不難。一些庫甚至使用該標籤將參數半實時傳遞給iframe以實現IE6兼容性。
如果只是在javascript中使用,但真的只有1頁服務器端不使用?但使用#它會認爲它是相同的頁面,但在不同的定位點上。因此,如果test.com/#foo被緩存,那麼test.col /#bar也是(相同的頁面,不同的錨點)
可以更新由代碼框架網址:
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];
}
你想一次更改所有I幀的變量? – putvande
你能澄清一下 - page.html是否與父頁面在同一個域上? –