0

我有一个网站,里面有很多这样的 iframe:

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

我必须var=blabla&id=42为每个 iFrame 进行更改。这些参数在 iframe 的 javascript 中使用。page.html有没有办法对所有变量进行一次缓存(向浏览器提供提示) (静态)?

我必须使用 iframe,因为我希望能够更新此代码(从另一台服务器)并在另一个范围内运行它。

4

3 回答 3

1

否 - 任何更改查询字符串的内容都代表浏览器的单独资源。

但是,如果您可以对 page.html 进行一些细微的更改,您可能能够实现该效果。如果你这样写:

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

请注意#字符的使用 - 这是那里的关键。

查询字符串变成了简单的“page.html”并且会以这种方式缓存。但是,该页面的 Javascript 将可以访问document.location.hash包含“ var=blabla&id=42”的变量。它将被写为单个字符串,但解析起来应该不难。一些库甚至使用该标签半实时地将参数传递给 iframe 以实现 IE6 兼容性。

于 2013-10-21T20:08:14.803 回答
0

如果它仅用于 javascript 但实际上只有 1 页服务器端不要使用?但是使用 # 它会认为它是同一个页面,但在不同的锚点。因此,如果 test.com/#foo 被缓存,那么 test.col/#bar 也被缓存(同一页面,不同的锚点)

于 2013-10-21T20:06:38.543 回答
-1

您可以从代码更新框架 URL:

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];
}
于 2013-10-21T20:08:53.370 回答