简体   繁体   中英

Firefox not catching “undefined” error in javascript

I have some javascript code which calls a servlet with parameters based on the selected option from a SELECT list. It is possible that there will be no options in the selectCampaigns(account) so there is a try and catch .

The code in the catch should be called if,

var selectedCampaign = selectCampaigns.options[selectCampaigns.selectedIndex].text;

fails. This works in both chrome and IE but in firefox it gives a TypeErrror ,

TypeError: selectCampaigns.options[selectCampaigns.selectedIndex] is undefined

which does not trigger the catch . May I have some suggestions on how to handle this? (in addition firefox does not show any of the alerts that I have inserted for debugging).

function selectcampaign(account) {
    alert('alert1');
    var selectCampaigns = document.getElementById("campaignSelect");
    var urlstrg = "http://localhost:8080/SalesPoliticalMapping/OrgChart";

    try {
        var selectedCampaign = selectCampaigns.options[selectCampaigns.selectedIndex].text;
        urlstrg = "http://localhost:8080/SalesPoliticalMapping/OrgChart?account=" + account +   "&campaign=" + selectedCampaign;
    } catch(err) {
        alert(err);
        urlstrg = "http://localhost:8080/SalesPoliticalMapping/OrgChart?account=" + account;
    } finally {
        window.location.href = urlstrg;
    }
};

You should better test the value instead of dealing with errors.

function selectcampaign(account) {
    var selectCampaigns = document.getElementById("campaignSelect");
    var urlstrg = "http://localhost:8080/SalesPoliticalMapping/OrgChart?account=" + account;

    if(selectCampaigns.options[selectCampaigns.selectedIndex]) {
        urlstrg += "&campaign=" + selectCampaigns.options[selectCampaigns.selectedIndex].text;
    }

    window.location.href = urlstrg;
};

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM