]> source.dussan.org Git - nextcloud-server.git/commitdiff
also replace svg images with png when the server doesn't send the correct mimetype...
authorRobin Appelman <icewind1991@gmail.com>
Mon, 22 Aug 2011 12:53:52 +0000 (14:53 +0200)
committerRobin Appelman <icewind1991@gmail.com>
Mon, 22 Aug 2011 12:53:52 +0000 (14:53 +0200)
(which breaks svg images for most browsers)

core/js/js.js

index 9ad9810a7e0655a5bdbf99bb4ae56ee3504539d7..ee841227695c0482d560718093acff89380cf0ff 100644 (file)
@@ -183,6 +183,31 @@ function SVGSupport() {
        return !!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg', "svg").createSVGRect;
 }
 
+//replace all svg images with png for browser compatibility
+function replaceSVG(){
+       $('img.svg').each(function(index,element){
+               element=$(element);
+               var src=element.attr('src');
+               element.attr('src',src.substr(0,src.length-3)+'png');
+       });
+       $('.svg').each(function(index,element){
+               element=$(element);
+               var background=element.css('background-image');
+               if(background && background!='none'){
+                       background=background.substr(0,background.length-4)+'png)';
+                       element.css('background-image',background);
+               }
+               element.find('*').each(function(index,element) {
+                       element=$(element);
+                       var background=element.css('background-image');
+                       if(background && background!='none'){
+                               background=background.substr(0,background.length-4)+'png)';
+                               element.css('background-image',background);
+                       }
+               });
+       });
+}
+
 /**
  * prototypal inharitence functions
  * 
@@ -197,28 +222,28 @@ function object(o) {
 
 $(document).ready(function(){
        if(!SVGSupport()){//replace all svg images with png images for browser that dont support svg
-               $('img.svg').each(function(index,element){
-                       element=$(element);
-                       var src=element.attr('src');
-                       element.attr('src',src.substr(0,src.length-3)+'png');
-               });
-               $('.svg').each(function(index,element){
-                       element=$(element);
-                       var background=element.css('background-image');
-                       if(background && background!='none'){
-                               background=background.substr(0,background.length-4)+'png)';
-                               element.css('background-image',background);
-                       }
-                       element.find('*').each(function(index,element) {
-                               element=$(element);
-                               var background=element.css('background-image');
-                               if(background && background!='none'){
-                                       background=background.substr(0,background.length-4)+'png)';
-                                       element.css('background-image',background);
+               replaceSVG();
+       };
+       $.ajax({
+               url: OC.imagePath('core','breadcrumb.svg'),
+               success:function(data,text,xhr){
+                       var headerParts=xhr.getAllResponseHeaders().split("\n");
+                       var headers={};
+                       $.each(headerParts,function(i,text){
+                               if(text){
+                                       var parts=text.split(':',2);
+                                       var value=parts[1].trim();
+                                       if(value[0]=='"'){
+                                               value=value.substr(1,value.length-2);
+                                       }
+                                       headers[parts[0]]=value;
                                }
                        });
-               });
-       };
+                       if(headers["Content-Type"]!='image/svg+xml'){
+                               replaceSVG();
+                       }
+               }
+       });
        $('form.searchbox').submit(function(event){
                event.preventDefault();
        })