I'm having an issue getting IE 7 to respond to the setAttribute("src", "...") command in javascript.
The code does the following:
1) There exists an img id called mainImage in my html.
2) On load the body calls getimagesource
3) The javascript reads a configuration file (test3.txt), that has each of the following, newline delimited, inside it: filename (1.jpg), date (2009-01-19), pic title(Digital), pic caption (This is a pic of...).
4) The code then attempts to set the src of the image to the image that has the closest date before the current day.
5) The it sets the caption, and once the image is loaded, resizes it.
The code works as expected in firefox. You can see it here:
http://shentech.org/techdept/
The code produces no errors in IE7, just fails to run. Due to the fact that in IE 7 the title and caption of the image appear correctly, I concluded that the xmlhttprequest worked. That would indicate the problem is with the setAttribute tag. As you can see, I also tried using the HTML DOM 2 method, (declaration before [line 58], set after [line 60]) around the setAttribute tag. I would greatly appreciate any assistance.
My code is attached below.
function sizeIMG(imgid){
// NEW WIDTH||HEIGHT
var new_image_size = 600;
// DO NOT EDIT
var el = document.getElementById(imgid)
if(el.width > 600 || el.height >600) {
var tempwidth = el.width;
var tempheight= el.height;
if(el.width>el.height)
{
el.width=new_image_size;
el.height=(600/tempwidth)*tempheight;
}
else
{
el.style.height=new_image_size;
el.style.width=(600/tempheight)*tempwidth;
}
}
};
function getimagesource() {
var txtFile = new XMLHttpRequest();
//txtFile.open("GET", "http://shenet.org/high/hsacaddept/technology/maintechweb/imageconfig.txt", true);
txtFile.open("GET", "http://shentech.org/techdept/config/test3.txt", true);
txtFile.onreadystatechange = function() {
if (txtFile.readyState === 4) { // Makes sure the document is ready to parse.
if (txtFile.status === 200) { // Makes sure it's found the file.
var allText = txtFile.responseText;
var lines = txtFile.responseText.split("\n"); // Will separate each line into an array
var numlines=lines.length;
var i=1;
var d = new Date();
var datenow = new Date();
datenow.setFullYear(1992);
while(numlines>i && datenow<d){
var curdate = lines[i].split("-");
datenow.setFullYear(curdate[0]);
datenow.setMonth(curdate[1]-1);
datenow.setDate(curdate[2]);
i=i+5;
}
i=i-5;
var message = new Array('./images/'+lines[i-1], lines[i+1], lines[i+2]);
var img = document.getElementById("mainImage");
document.getElementById("mainImage").setAttribute("src", message[0]);
img.src = message[0];
var imageObj = new Image();
imageObj.onload = function() {
sizeIMG("mainImage");
};
imageObj.src = message[0];
document.getElementById("title").innerHTML = message[1];
document.getElementById("caption").innerHTML = message[2];
}
}
}
txtFile.send(null);
};
Thanks in advance,
Ryan