2010-10-08 7 views
0

Je suis confronté à un problème étrange dans l'opéra tout en utilisant cufon avec dd_belatedPNG et dd_roundies. Tout fonctionne très bien dans tous les navigateurs sauf l'opéra. Une fois que je supprime ci-dessous deux lignes cufon fonctionne aussi avec l'opéra. mais j'ai besoin de dd_roundies et de png fix aussi.DD_belatedPNG et DD_roundies ayant un conflit avec Cufon dans Opera

<script type="text/javascript" src="/js/DD_belatedPNG_0.0.8a-min.js"></script> 
<script type="text/javascript" src="/js/DD_roundies_0.0.2a-min.js"></script> 

Mais j'ai besoin de faire fonctionner cufon avec dd_roundies et png fix. aucune erreur javascript. tout fonctionne bien dans tous les navigateurs sauf l'opéra.

Une idée?

ici est le code de toute page de test

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 

<script type="text/javascript" src="/js/cufon.js"></script> 
<script type="text/javascript" src="/fonts/3/ergoe-light-cufon.js"></script> 

<script type="text/javascript" src="/js/DD_belatedPNG_0.0.8a-min.js"></script> 
<script type="text/javascript" src="/js/DD_roundies_0.0.2a-min.js"></script> 

<style> 
h1 {font-size:136px;} 
</style> 
</head> 

<body> 
<h1>Test Heading</h1> 

<script> 
Cufon.set('fontFamily', 'ErgoeLight').replace('h1'); 
</script> 

</body> 

</html> 

Répondre

0

je fixe moi-même ce problème. j'ai placé un contrôle de détection du navigateur sur le fichier dd_belatedPNG.js

if (BrowserDetect.browser != 'Opera') 
      document.documentElement.firstChild.insertBefore(screenStyleSheet, document.documentElement.firstChild.firstChild); 

qui est le code de détection navigateur qui est au-dessus de usedIn ifcondition

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();