Browser-Update.org提供了一個很好的JavaScript警告用戶過時的瀏覽器來更新它們。不幸的是(a)IE7未包含在過期瀏覽器的默認列表中,並且(b)腳本不能通過SSL工作。瀏覽器更新腳本
他們認爲劇本是
<script type="text/javascript">
var $buoop = {}
$buoop.ol = window.onload;
window.onload=function(){
try {if ($buoop.ol) $buoop.ol();}catch (e) {}
var e = document.createElement("script");
e.setAttribute("type", "text/javascript");
e.setAttribute("src", "http://browser-update.org/update.js");
document.body.appendChild(e);
}
</script>
相反,我使用的是外部JavaScript如下:
app.onload(function() {
if ('https:' === document.location.protocol) return; // Browser Update script is not currently available over SSL.
var $buoop = {vs:{i:7,f:2,o:10.5,s:2,n:9}};
var e = document.createElement('script');
e.setAttribute('type', 'text/javascript');
e.setAttribute('src', 'http://browser-update.org/update.js');
document.body.appendChild(e);
});
需要明確的是:app.onload()
是一個很好的功能,增加了功能的window.onload
處理器。
這似乎工作,但有一個不幸的副作用。如果警報被解除,則不應在該瀏覽會話中再次顯示。通過上面的腳本,這似乎不起作用。在IE7上,警報發生在每個頁面加載。有沒有辦法解決這個問題?
問題是,'browser-update.org'腳本應該自動執行該操作。我想知道我打電話的方式有什麼不同,現在不這樣做。是因爲'$ buoop'變量在'function()'裏面嗎? – TRiG
所以基本上已經有一個由腳本檢查..它是由頁面加載覆蓋?你在頁面之間導航還是通過ajax加載? – rlemon
頁面之間的正常導航,以下鏈接。 – TRiG