【发布时间】:2012-11-07 22:18:18
【问题描述】:
Facebook 注册插件的 XFBML 版本仅加载 HTTPS。我需要它来加载 HTTP,这样我的表单就不会调用域之间的安全错误不匹配。
我编写这段代码是为了获取 SRC 并在不使用 HTTPS 的情况下重写它
它在第一次加载时运行良好,但在 Chrome 和 Safari 上它只在第一次加载和硬刷新时加载。它不会在标准重新加载或按地址栏上的“输入”时加载。这是代码
$(window).load(function () {
// Replace HTTPS with HTTP when frame has loaded
$(".subscribe iframe").each(function(){
var source = $(this).attr("src");
//alert(source);
var sourceNew = source.replace("https", "http"); // change https to http
alert(sourceNew);
$(this).attr("src", sourceNew);
});
});
我已将 .HTACCESS 设置为禁用服务器缓存
<Files *>
Header set Cache-Control: "private, pre-check=0, post-check=0, max-age=0"
Header set Expires: 0
Header set Pragma: no-cache
</Files>
是什么导致它不能可靠地触发?谢谢
【问题讨论】:
-
您应该检查您的服务器配置是否有任何特定的缓存设置。
-
HTACCESS 已设置为禁用缓存。奇怪的是,在 FireFox 上,它加载 100% 的时间。所以这让我相信这不是服务器问题,而是浏览器问题。
-
你为什么使用
$(window).load,而不仅仅是$(function(){…})? -
我需要等到所有 iframe 都加载完毕,这些 iframe 都是由 Facebook JS SDK 以编程方式插入的,这样我才能获取源代码。否则它是未定义的。
-
我在非 FF 浏览器中遇到了类似的问题,直到我在一种情况下为 htaccess 缓存设置了“Expires”指令。您是否设置了这个(到过去的日期...)?
标签: javascript jquery syntax-error facebook-iframe page-refresh