[Javascript] Qui saura rendre ce script compatible NS6?

Qui saura rendre ce script compatible NS6? [Javascript] - HTML/CSS - Programmation

Marsh Posté le 10-07-2002 à 14:06:15    

Voilà la bête (non, ça n'est pas de moi!):
 

var isMinNS4 = (navigator.appName.indexOf("Netscape" ) >= 0 &&
                parseFloat(navigator.appVersion) >= 4) ? 1 : 0;
var isMinIE4 = (document.all) ? 1 : 0;
var isMinIE5 = (isMinIE4 && navigator.appVersion.indexOf("5." ) >= 0) ? 1 : 0;
 
//-----------------------------------------------------------------------------
// Layer visibility.
//-----------------------------------------------------------------------------
 
function hideLayer(layer) {
 
  if (isMinNS4)
    layer.visibility = "hide";
  if (isMinIE4)
    layer.style.visibility = "hidden";
}
 
function showLayer(layer) {
 
  if (isMinNS4)
    layer.visibility = "show";
  if (isMinIE4)
    layer.style.visibility = "visible";
}
 
function isVisible(layer) {
 
  if (isMinNS4 && layer.visibility == "show" )
    return(true);
  if (isMinIE4 && layer.style.visibility == "visible" )
    return(true);
 
  return(false);
}
 
//-----------------------------------------------------------------------------
// Layer positioning.
//-----------------------------------------------------------------------------
 
function moveLayerTo(layer, x, y) {
 
  if (isMinNS4)
    layer.moveTo(x, y);
  if (isMinIE4) {
    layer.style.left = x;
    layer.style.top  = y;
  }
}
 
function moveLayerBy(layer, dx, dy) {
 
  if (isMinNS4)
    layer.moveBy(dx, dy);
  if (isMinIE4) {
    layer.style.pixelLeft += dx;
    layer.style.pixelTop  += dy;
  }
}
 
function getLeft(layer) {
 
  if (isMinNS4)
    return(layer.left);
  if (isMinIE4)
    return(layer.style.pixelLeft);
  return(-1);
}
 
function getTop(layer) {
 
  if (isMinNS4)
    return(layer.top);
  if (isMinIE4)
    return(layer.style.pixelTop);
  return(-1);
}
 
function getRight(layer) {
 
  if (isMinNS4)
    return(layer.left + getWidth(layer));
  if (isMinIE4)
    return(layer.style.pixelLeft + getWidth(layer));
  return(-1);
}
 
function getBottom(layer) {
 
  if (isMinNS4)
    return(layer.top + getHeight(layer));
  else if (isMinIE4)
    return(layer.style.pixelTop + getHeight(layer));
  return(-1);
}
 
function getPageLeft(layer) {
 
  if (isMinNS4)
    return(layer.pageX);
  if (isMinIE4)
    return(layer.offsetLeft);
  return(-1);
}
 
function getPageTop(layer) {
 
  if (isMinNS4)
    return(layer.pageY);
  if (isMinIE4)
    return(layer.offsetTop);
  return(-1);
}
 
function getWidth(layer) {
 
  if (isMinNS4) {
    if (layer.document.width)
      return(layer.document.width);
    else
      return(layer.clip.right - layer.clip.left);
  }
  if (isMinIE4) {
    if (layer.style.pixelWidth)
      return(layer.style.pixelWidth);
    else
      return(layer.clientWidth);
  }
  return(-1);
}
 
function getHeight(layer) {
 
  if (isMinNS4) {
    if (layer.document.height)
      return(layer.document.height);
    else
      return(layer.clip.bottom - layer.clip.top);
  }
  if (isMinIE4) {
    if (false && layer.style.pixelHeight)
      return(layer.style.pixelHeight);
    else
      return(layer.clientHeight);
  }
  return(-1);
}
 
function getzIndex(layer) {
 
  if (isMinNS4)
    return(layer.zIndex);
  if (isMinIE4)
    return(layer.style.zIndex);
 
  return(-1);
}
 
function setzIndex(layer, z) {
 
  if (isMinNS4)
    layer.zIndex = z;
  if (isMinIE4)
    layer.style.zIndex = z;
}
 
//-----------------------------------------------------------------------------
// Layer clipping.
//-----------------------------------------------------------------------------
 
function clipLayer(layer, clipleft, cliptop, clipright, clipbottom) {
 
  if (isMinNS4) {
    layer.clip.left   = clipleft;
    layer.clip.top    = cliptop;
    layer.clip.right  = clipright;
    layer.clip.bottom = clipbottom;
  }
  if (isMinIE4)
    layer.style.clip = 'rect(' + cliptop + ' ' +  clipright + ' ' + clipbottom + ' ' + clipleft +')';
}
 
function getClipLeft(layer) {
 
  if (isMinNS4)
    return(layer.clip.left);
  if (isMinIE4) {
    var str =  layer.style.clip;
    if (!str)
      return(0);
    var clip = getIEClipValues(layer.style.clip);
    return(clip[3]);
  }
  return(-1);
}
 
function getClipTop(layer) {
 
  if (isMinNS4)
    return(layer.clip.top);
  if (isMinIE4) {
    var str =  layer.style.clip;
    if (!str)
      return(0);
    var clip = getIEClipValues(layer.style.clip);
    return(clip[0]);
  }
  return(-1);
}
 
function getClipRight(layer) {
 
  if (isMinNS4)
    return(layer.clip.right);
  if (isMinIE4) {
    var str =  layer.style.clip;
    if (!str)
      return(layer.style.pixelWidth);
    var clip = getIEClipValues(layer.style.clip);
    return(clip[1]);
  }
  return(-1);
}
 
function getClipBottom(layer) {
 
  if (isMinNS4)
    return(layer.clip.bottom);
  if (isMinIE4) {
    var str =  layer.style.clip;
    if (!str)
      return(layer.style.pixelHeight);
    var clip = getIEClipValues(layer.style.clip);
    return(clip[2]);
  }
  return(-1);
}
 
function getClipWidth(layer) {
 
  if (isMinNS4)
    return(layer.clip.width);
  if (isMinIE4) {
    var str = layer.style.clip;
    if (!str)
      return(layer.style.pixelWidth);
    var clip = getIEClipValues(layer.style.clip);
    return(clip[1] - clip[3]);
  }
  return(-1);
}
 
function getClipHeight(layer) {
 
  if (isMinNS4)
    return(layer.clip.height);
  if (isMinIE4) {
    var str =  layer.style.clip;
    if (!str)
      return(layer.style.pixelHeight);
    var clip = getIEClipValues(layer.style.clip);
    return(clip[2] - clip[0]);
  }
  return(-1);
}
 
function getIEClipValues(str) {
 
  var clip = new Array();
  var i;
 
  // Parse out the clipping values for IE layers.
 
  i = str.indexOf("(" );
  clip[0] = parseInt(str.substring(i + 1, str.length), 10);
  i = str.indexOf(" ", i + 1);
  clip[1] = parseInt(str.substring(i + 1, str.length), 10);
  i = str.indexOf(" ", i + 1);
  clip[2] = parseInt(str.substring(i + 1, str.length), 10);
  i = str.indexOf(" ", i + 1);
  clip[3] = parseInt(str.substring(i + 1, str.length), 10);
  return(clip);
}
 
//-----------------------------------------------------------------------------
// Layer scrolling.
//-----------------------------------------------------------------------------
 
function scrollLayerTo(layer, x, y, bound) {
 
  var dx = getClipLeft(layer) - x;
  var dy = getClipTop(layer) - y;
 
  scrollLayerBy(layer, -dx, -dy, bound);
}
 
function scrollLayerBy(layer, dx, dy, bound) {
 
  var cl = getClipLeft(layer);
  var ct = getClipTop(layer);
  var cr = getClipRight(layer);
  var cb = getClipBottom(layer);
 
  if (bound) {
    if (cl + dx < 0)
 
      dx = -cl;
 
    else if (cr + dx > getWidth(layer))
      dx = getWidth(layer) - cr;
    if (ct + dy < 0)
 
      dy = -ct;
 
    else if (cb + dy > getHeight(layer))
      dy = getHeight(layer) - cb;
  }
 
  clipLayer(layer, cl + dx, ct + dy, cr + dx, cb + dy);
  moveLayerBy(layer, -dx, -dy);
}
 
//-----------------------------------------------------------------------------
// Layer background.
//-----------------------------------------------------------------------------
 
function setBgColor(layer, color) {
 
  if (isMinNS4)
    layer.bgColor = color;
  if (isMinIE4)
    layer.style.backgroundColor = color;
}
 
function setBgImage(layer, src) {
 
  if (isMinNS4)
    layer.background.src = src;
  if (isMinIE4)
    layer.style.backgroundImage = "url(" + src + " )";
}
 
//-----------------------------------------------------------------------------
// Layer utilities.
//-----------------------------------------------------------------------------
 
function getLayer(name) {
 
  if (isMinNS4)
    return findLayer(name, document);
  if (isMinIE4)
    return eval('document.all.' + name);
 
  return null;
}
 
function findLayer(name, doc) {
 
  var i, layer;
 
  for (i = 0; i < doc.layers.length; i++) {
    layer = doc.layers[i];
    if (layer.name == name)
      return layer;
    if (layer.document.layers.length > 0) {
      layer = findLayer(name, layer.document);
      if (layer != null)
        return layer;
    }
  }
 
  return null;
}
 
//-----------------------------------------------------------------------------
// Window and page properties.
//-----------------------------------------------------------------------------
 
function getWindowWidth() {
 
  if (isMinNS4)
    return(window.innerWidth);
  if (isMinIE4)
    return(document.body.clientWidth);
  return(-1);
}
 
function getWindowHeight() {
 
  if (isMinNS4)
    return(window.innerHeight);
  if (isMinIE4)
    return(document.body.clientHeight);
  return(-1);
}
 
function getPageWidth() {
 
  if (isMinNS4)
    return(document.width);
  if (isMinIE4)
    return(document.body.scrollWidth);
  return(-1);
}
 
function getPageHeight() {
 
  if (isMinNS4)
    return(document.height);
  if (isMinIE4)
    return(document.body.scrollHeight);
  return(-1);
}
 
function getPageScrollX() {
 
  if (isMinNS4)
    return(window.pageXOffset);
  if (isMinIE4)
    return(document.body.scrollLeft);
  return(-1);
}
 
function getPageScrollY() {
 
  if (isMinNS4)
    return(window.pageYOffset);
  if (isMinIE4)
    return(document.body.scrollTop);
  return(-1);
}


 
Je sais qu'il y a une histoire de document.getElementById mais je suis vraiment une tanche en js...
Serait-il possible d'avoir au moins la marche à suivre? :)

Reply

Marsh Posté le 10-07-2002 à 14:06:15   

Reply

Marsh Posté le 10-07-2002 à 14:08:29    

annonce le prix d'abord.
 

Prosper Youplaboum a écrit a écrit :

Serait-il possible d'avoir au moins la marche à suivre? :)


1) lire la doc et les specs du DOM (google w3 dom)
 
2) isoler les bouts de scripts qui ne marchent que sous ie
 
3) google "mot clé qui ne marche que sous ie + mozilla"
 
3bis) google pareil avec "mot clé ... site:msdn.microsoft.com" pour voir si le mot clé est dans le standard.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed