Skip navigation.

Prepare!

Lee Harvey's Zombie Hit Parade

Posts tagged with "asus"

UserJS fix for ASUS Product Comparison page

, , , ...

The ASUS Product Comparison page seems to contain JavaScript code written specifically for MSIE or FF (untested). In any event, the page does not work correctly in Opera, mostly due to their calls to new ActiveXObject.

Below, I've taken the liberty of correcting their processRequest and add JavaScript functions found in this external load_data.js script.

Click here to download/view the asus.js script

if (document.domain.match(/(uk\.)?asus\.com$/)) {

   window.opera.defineMagicFunction("processRequest",
      function(a, b, c) {
         if (http_request.readyState != 4) return;
         if (http_request.status != 200) return;

         var dpl1=document.getElementById("dpl_l1");
         var dpl2=document.getElementById("dpl_l2");
         var dpl3=document.getElementById("dpl_l3");
         var dpl4=document.getElementById("dpl_l4");
         var lbl=document.getElementById("lbl_model");
        
         var parser = new DOMParser();
         var xmldoc = parser.parseFromString(http_request.responseText,"text/xml");
         var dataArray = xmldoc.getElementsByTagName('Table1');
         var dataArrayLen = dataArray.length;
         for (var i=0; i<dataArrayLen; i++)
         {
            var get_id=dataArray[i].getElementsByTagName("id_name")[0].text;
            var get_value=dataArray[i].getElementsByTagName("id_value")[0].text;
            var opt = new Option(get_value, get_id, 0, 0);
            if (l1!=0&&list_model==2) //load level 2
            {
               dpl2.disabled=false;
               dpl2.add(opt);
            }
            else if(l2!=0&&list_model==3) //load level 3
            {
               dpl3.disabled=false;
               dpl3.add(opt);
            }
            else if(l3!=0&&list_model==4) //load level 4
            {
               dpl4.disabled=false;
               dpl4.add(opt);
            }
            else if (list_model==5) 
            {
               dpl3.disabled=(dpl3.length==1);
               lbl.add(opt);
            }
         }
      }, 0);


   window.opera.defineMagicFunction("add", 
      function(a, b, c) {
         var lbl=document.getElementById("lbl_model");
         var lbl_select=document.getElementById("lbl_model_select");
         for(var i=0;i<lbl.options.length;i++)
         {
            if (!lbl.options[i].selected) continue;

            for(var j=0;j<lbl_select.options.length;j++)
               if (lbl.options[i].value==lbl_select.options[j].value)
                  return;

            lbl_select.add(new Option(lbl.options[i].text, lbl.options[i].value));
         }
      }, 0);

}

For those of you who might use this ASUS product comparison page, enjoy.