Fixed Web UI compatibility with Safari

This commit is contained in:
Christophe Dumez 2010-03-16 00:20:32 +00:00
parent 12fff1b966
commit 165b33a94e
4 changed files with 124 additions and 12 deletions

View file

@ -22,6 +22,116 @@
* THE SOFTWARE.
*/
// Debug
//alert(navigator.userAgent);
// From http://www.quirksmode.org/js/detect.html
var BrowserDetect = {
init: function () {
this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
//this.version = this.searchVersion(navigator.userAgent)
// || this.searchVersion(navigator.appVersion)
// || "an unknown version";
//this.OS = this.searchString(this.dataOS) || "an unknown OS";
},
searchString: function (data) {
for (var i=0;i<data.length;i++) {
var dataString = data[i].string;
var dataProp = data[i].prop;
this.versionSearchString = data[i].versionSearch || data[i].identity;
if (dataString) {
if (dataString.indexOf(data[i].subString) != -1)
return data[i].identity;
}
else if (dataProp)
return data[i].identity;
}
},
dataBrowser: [
{
string: navigator.userAgent,
subString: "Chrome",
identity: "Chrome"
},
{
string: navigator.userAgent,
subString: "Epiphany",
identity: "Epiphany"
},
{
string: navigator.userAgent,
subString: "Arora",
identity: "Arora"
},
{
string: navigator.userAgent,
subString: "midori",
identity: "Midori"
},
{
string: navigator.userAgent,
subString: "OmniWeb",
versionSearch: "OmniWeb/",
identity: "OmniWeb"
},
{
string: navigator.vendor,
subString: "Apple",
identity: "Safari",
versionSearch: "Version"
},
{
prop: window.opera,
identity: "Opera"
},
{
string: navigator.vendor,
subString: "iCab",
identity: "iCab"
},
{
string: navigator.vendor,
subString: "KDE",
identity: "Konqueror"
},
{
string: navigator.userAgent,
subString: "Firefox",
identity: "Firefox"
},
{
string: navigator.vendor,
subString: "Camino",
identity: "Camino"
},
{ // for newer Netscapes (6+)
string: navigator.userAgent,
subString: "Netscape",
identity: "Netscape"
},
{
string: navigator.userAgent,
subString: "MSIE",
identity: "Explorer",
versionSearch: "MSIE"
},
{
string: navigator.userAgent,
subString: "Gecko",
identity: "Mozilla",
versionSearch: "rv"
},
{ // for older Netscapes (4-)
string: navigator.userAgent,
subString: "Mozilla",
identity: "Netscape",
versionSearch: "Mozilla"
}
]
};
BrowserDetect.init();
myTable = new dynamicTable();
ajaxfn = function(){};
setSortedColumn = function(index){
@ -206,8 +316,10 @@ window.addEvent('load', function(){
}
};
ajaxfn();
loadTransferInfo();
// ajaxfn.periodical(5000);
if(BrowserDetect.browser != "Safari") {
// Safari has trouble with this
loadTransferInfo();
}
setFilter = function(f) {
// Visually Select the right filter
@ -229,14 +341,6 @@ function closeWindows() {
MochaUI.closeAll();
}
// This runs when a person leaves your page.
//window.addEvent('unload', function(){
// if (MochaUI && Browser.Engine.trident != true) {
// MochaUI.garbageCleanUp();
// }
//});
window.addEvent('keydown', function(event){
if (event.key == 'a' && event.control) {
event.stop();