What website do any of you recommend for learning Javascript browser compatibility? I’d like to learn more about acceptable javascript programming.
I am using the script below for changing elements content without refreshing my page. Typically it works fine on recent Mozilla and IE releases if they haven’t had too many hijacked settings. I know this isn’t really much of an excuse for a script not to execute if it is done properly so I am hoping someone here can help me make what I have more compatible with more settings and browsers.
[CODE]<script type=”text/javascript”>
//<![CDATA[
function suggest(terms){
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else{
xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById(“suggest”).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open(“GET”,”/app/webroot/contacts/suggestit.php?terms=”+terms,true);
xmlhttp.send();
}
function update(id){
var url=””;
if(!id){
url=”/app/webroot/contacts/edit_contact.php?”;
}else{
url=”/app/webroot/contacts/edit_contact.php?id=”+id;
}
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else{
xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById(“popUpDiv”).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open(“GET”,url,true);
xmlhttp.send();
}
function toggle(div_id) {
var el = document.getElementById(div_id);
if ( el.style.display == ‘none’ ) { el.style.display = ‘block’;}
else {el.style.display = ‘none’;}
}
function blanket_size(popUpDivVar) {
if (typeof window.innerWidth != ‘undefined’) {
viewportheight = window.innerHeight;
} else {
viewportheight = document.documentElement.clientHeight;
}
if ((viewportheight > document.body.parentNode.scrollHeight) && (viewportheight > document.body.parentNode.clientHeight)) {
blanket_height = viewportheight;
} else {
if (document.body.parentNode.clientHeight > document.body.parentNode.scrollHeight) {
blanket_height = document.body.parentNode.clientHeight;
} else {
blanket_height = document.body.parentNode.scrollHeight;
}
}
var blanket = document.getElementById(‘blanket’);
blanket.style.height = blanket_height + ‘px’;
var popUpDiv = document.getElementById(popUpDivVar);
popUpDiv_height=blanket_height/2-150;//150 is half popup’s height
popUpDiv.style.top = ‘300px’;
}
function window_pos(popUpDivVar) {
if (typeof window.innerWidth != ‘undefined’) {
viewportwidth = window.innerHeight;
} else {
viewportwidth = document.documentElement.clientHeight;
}
if ((viewportwidth > document.body.parentNode.scrollWidth) && (viewportwidth > document.body.parentNode.clientWidth)) {
window_width = viewportwidth;
} else {
if (document.body.parentNode.clientWidth > document.body.parentNode.scrollWidth) {
window_width = document.body.parentNode.clientWidth;
} else {
window_width = document.body.parentNode.scrollWidth;
}
}
var popUpDiv = document.getElementById(popUpDivVar);
window_width=window_width/2-150;//150 is half popup’s width
popUpDiv.style.left = window_width + ‘px’;
}
function popup(windowname) {
//blanket_size(windowname);
window_pos(windowname);
toggle(‘blanket’);
toggle(windowname);
}
//]]>
</script>