Detecting support for a given JavaScript event?

后端 未结 3 512
长发绾君心
长发绾君心 2020-11-29 05:25

I\'m interested in using the JavaScript hashchange event to monitor changes in the URL\'s fragment identifier. I\'m aware of Really Simple History and the jQuery plugins fo

3条回答
  •  余生分开走
    2020-11-29 06:03

    Here is a modification of the answer provided by CMS, which doesn't contain a function in another, which I think would work:

    function event_exists(eventName){
        if(typeof(eventName)!='string' || eventName.length==0)return false;
        var TAGNAMES = {
            'select':'input','change':'input',
            'submit':'form','reset':'form',
            'error':'img','load':'img','abort':'img'
        }
        var el = document.createElement(TAGNAMES[eventName] || 'div');
        eventName = 'on' + eventName;
        var isSupported = (eventName in el);
        if (!isSupported) {
            el.setAttribute(eventName,'return;');
            isSupported = (typeof(el[eventName])=='function');
        }
        el = null;
        return isSupported;
    }
    

提交回复
热议问题