diff options
author | Ted Trask <ttrask01@yahoo.com> | 2010-10-07 12:51:44 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2010-10-07 12:51:44 +0000 |
commit | 29ba7848ebb9bd5164e509c6eea60c2386c2b689 (patch) | |
tree | 5d072967bfc4fea90887acc3ec67a696c42454e3 | |
parent | 2c0c376caf1f6361aaa264a4cc7a0e2bcce345a9 (diff) | |
download | acf-freeswitch-vmail-29ba7848ebb9bd5164e509c6eea60c2386c2b689.tar.bz2 acf-freeswitch-vmail-29ba7848ebb9bd5164e509c6eea60c2386c2b689.tar.xz |
Added browser detect script from http://www.quirksmode.org/js/detect.html to get messages to play on Safari
Yes, it's ugly, but it works.
-rw-r--r-- | vmail-listmessages-html.lsp | 123 |
1 files changed, 122 insertions, 1 deletions
diff --git a/vmail-listmessages-html.lsp b/vmail-listmessages-html.lsp index 7ab94f6..46bff4d 100644 --- a/vmail-listmessages-html.lsp +++ b/vmail-listmessages-html.lsp @@ -47,9 +47,130 @@ end <script type="text/javascript" src="<%= html.html_escape(page_info.wwwprefix) %>/js/jquery-latest.js"></script> <script type="text/javascript" src="<%= html.html_escape(page_info.wwwprefix) %>/js/jquery.tablesorter.js"></script> <script type="text/javascript"> + <% -- Browser detect script 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; + } + }, + searchVersion: function (dataString) { + var index = dataString.indexOf(this.versionSearchString); + if (index == -1) return; + return parseFloat(dataString.substring(index+this.versionSearchString.length+1)); + }, + dataBrowser: [ + { + string: navigator.userAgent, + subString: "Chrome", + identity: "Chrome" + }, + { 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" + } + ], + dataOS : [ + { + string: navigator.platform, + subString: "Win", + identity: "Windows" + }, + { + string: navigator.platform, + subString: "Mac", + identity: "Mac" + }, + { + string: navigator.userAgent, + subString: "iPhone", + identity: "iPhone/iPod" + }, + { + string: navigator.platform, + subString: "Linux", + identity: "Linux" + } + ] + }; + BrowserDetect.init(); + function PlayMessage() { $(".temporaryplayer").remove(); - $(this).parent().parent().after("<tr class='temporaryplayer'><td colspan='9'><embed width='100%' height='25px' autostart='1' playcount='1' src='" + $(this).attr("href") + "' type='application/x-mplayer2'></embed></TD></TR>"); + if ( BrowserDetect.browser == "Safari" ) { + $(this).parent().parent().after("<tr class='temporaryplayer'><td colspan='9'><object type='audio/x-wav' data='" + $(this).attr("href") + "' width='100%' height='25'><param name='src' value='" + $(this).attr("href") + "'> <param name='autoplay' value='true'> <param name='autoStart' value='1'> </object></TD></TR>"); + } else { + $(this).parent().parent().after("<tr class='temporaryplayer'><td colspan='9'><embed width='100%' height='25px' autostart='1' playcount='1' src='" + $(this).attr("href") + "' type='application/x-mplayer2'></embed></TD></TR>"); + }; return false; } function HandleMulti() { |