Newsgroup: it.comp.lang.javascript
Titolo: usare una immagine se il link non è disponibile

salve,
sto tentando di usare un DDNS per collegare una telecamera ad
internet... purtroppo il servizio è spesso down e volevo sapere come
mettere una immagine statica al posto dell'odiosa scritta "no video"
immagino che ci sarà qualche cosa tipo " IF url not available do this"
vi allego il resto del codice
se qualcuno è curioso la pagina è a 
http://www.noleggioacquari.it
usa una telecamera sony subacquea e un videoserver axis 241s con un
adsl home di tiscali
<SCRIPT LANGUAGE="JavaScript">
// Set the BaseURL to the URL of your camera
var BaseURL = "
http://192.168.1.241/
";
// DisplayWidth & DisplayHeight specifies the displayed width & height
of the image.
// You may change these numbers, the effect will be a stretched or a
shrunk image
var DisplayWidth = "352";
var DisplayHeight = "288";
// This is the path to the image generating file inside the camera
itself
var File = "axis-cgi/mjpg/video.cgi?resolution=CIF&camera=1";
// No changes required below this point
var output = "";
if ((navigator.appName == "Microsoft Internet Explorer") &&
   (navigator.platform != "MacPPC") && (navigator.platform !=
"Mac68k"))
{
  // If Internet Explorer under Windows then use ActiveX 
  output  = '<OBJECT ID="Player" width='
  output += DisplayWidth;
  output += ' height=';
  output += DisplayHeight;
  output += ' CLASSID="CLSID:DE625294-70E6-45ED-B895-CFFA13AEB044" ';
  output += 'CODEBASE="';
  output += BaseURL;
  output += 'activex/AMC.cab#version=3,32,19,0">';
  output += '<PARAM NAME="MediaURL" VALUE="';
  output += BaseURL;
  output += File + '">';
  output += '<param name="MediaType" value="mjpeg-unicast">';
  output += '<param name="ShowStatusBar" value="0">';
  output += '<param name="ShowToolbar" value="0">';
  output += '<param name="AutoStart" value="1">';
  output += '<param name="StretchToFit" value="1">';
  // Remove the '//' for the ptz settings below to use the code for
click-in-image. 
     //  output += '<param name="PTZControlURL" value="';
     //  output += BaseURL;
     //  output += '/axis-cgi/com/ptz.cgi?camera=1">';
     //  output += '<param name="UIMode" value="ptz-relative">'; // or
"ptz-absolute"
  output += '<BR><B>Axis Media Control</B><BR>';
  output += 'The AXIS Media Control, which enables you ';
  output += 'to view live image streams in Microsoft Internet';
  output += ' Explorer, could not be registered on your computer.';
  output += '<BR></OBJECT>';
} else {
  // If not IE for Windows use the browser itself to display
  theDate = new Date();
  output  = '<IMG SRC="';
  output += BaseURL;
  output += File;
  output += '&dummy=' + theDate.getTime().toString(10);
  output += '" HEIGHT="';
  output += DisplayHeight;
  output += '" WIDTH="';
  output += DisplayWidth;
  output += '" ALT="Camera Image">';
}
document.write(output);
document.Player.ToolbarConfiguration = "play,+snapshot,+fullscreen"
// document.Player.UIMode = "MDConfig";
// document.Player.MotionConfigURL =
"/axis-cgi/operator/param.cgi?ImageSource=0"
// document.Player.MotionDataURL = "/axis-cgi/motion/motiondata.cgi";
</SCRIPT>

 mettere una immagine statica al posto dell'odiosa scritta "no video"
[CUT]
a vedere così al volo il tuo sorgente non mi sembra che stia usando una
immagine (almeno per IE), comunque sia:
il tag img scatena l'evento onerror se non trova l'immagine; quindi, per
esempio:
<img ... onerror='this.src="tuagifstatica.gif"/>
Purtroppo (sa dio perché) onerror non è considerato un evento
xhtml-standard, quindi se lo piazzi come sopra perdi la compatibilità
xhtml. Se ti interessa dovrai quindi assegnare un id al tuo img (es.
id='MyImg') e poi caricare l'event-handler onload, es.
window.onload=function() {
 document.getElementById("MyImg").onerror=function() {
      this.src="tuagifstatica.gif";
 }
}
-- 
"Ho smesso di fumare.
 Vivrò una settimana di più.
 E in quella settimana pioverà a dirotto"
									    W.A.