Cross Browser Event Management Functions Using JavaScript

CK CK 3788 
Created at  
612 0 0
What I have provided is a cross browser
approach to attach and manage events. IE uses Object.attachEvent to
attach an event to an object,whereas Fx uses Object.addEventListener to
do the above function. Similarly the functions used for removing an
attached event also varies. What I have provided is a crossbrowser
function addEvent which will call the function specific for that
browser. Similarly calling the function preventDefault from an attached
event handle prevents the triggering of the default action associated
with that event.

<!doctype html public "-//w3c//dtd html 4.01 transitional//en">
<html>
<head>
<title>Cross Browser Event Management</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script type="text/javascript">
<!--
/*
Cross Browser Event Management
*/

function addEvent(el,evType,handle){
    if(el.addEventListener)el.addEventListener(evType,handle,false);
    else if(el.attachEvent){
        el["e"   evType   handle] = handle;
        el[evType   handle] = function(){el["e"   evType   handle](window.event)}

        el.attachEvent("on"   evType,el[evType   handle]);
    }
}

function removeEvent(el,evType,handle){
    if(el.removeEventListener)el.removeEventListener(evType,handle,false);
    else if(el.detachEvent){
        el.detachEvent("on"   evType,el[evType   handle])
        el[evType   handle] = null
        el["e"   evType   handle] = null;
    }
}
function preventDefault(evt){
    var e = evt ? evt : window.event;
    if(e.preventDefault){
        e.preventDefault();
    }else{
        e.returnValue = false;
    }
}
function stopPropagation(evt){
    var e = evt ? evt : window.event;
    if(e.stopPropagation){
        e.stopPropagation();
    }else{
        e.cancelBubble = true;
    }
}
function init(){
    addEvent(document.getElementById('ElemId'),'click',clickTest);
}
function clickTest(){
    alert('Clicked');
    removeEvent(document.getElementById('ElemId'),'click',clickTest);
    alert('Removed');
}
addEvent(window,'load',init);
//-->
</script>
</head>

<body onload="">

<div id="ElemId" style="width:200px;height:50px;border:1px #CCC solid;background:#F2F2F2;">Click Me</div>

</body>
</html>

Tags DeleteCookie HTML Javascript addEventListener attachEvent getElementById Facebook X
Comments 0
Similar posts
  1. Javascript & Cookie based Visitor Application
    439
  2. How to record visitor's name by Cookie
    414
  3. Save And Restore Form Cookies in Javascript
    339
  4. Let popup once for event dialog or something like that in Javascript
    428
  5. New content notifier in Javascript
    606
  6. Cookie Redirect
    505
  7. Cookie enabled browser checking in Javascript
    344
  8. Access Granted
    593
  9. Greeting For The Time Of Day
    395
  10. Displays the number of pages that the users browser has displayed in its session
    670
  11. Address Book
    580
  12. Basic Date Display
    518
  13. Javascript implemented Calendar
    425
  14. Javascript based Alarm Clock
    679
  15. How to get date time in Javascript ?
    502
  16. Hiding HTML on the browser
    468
  17. Getting WebSearchers On Your Site
    378
  18. Javascript Mouse Event Handler Example
    404
  19. Select And Deselect All Checkboxes By Javascript
    634
  20. Printing A Page
    383
  21. Example Of Creating Objects
    404
  22. Linking Drop Downs
    579
  23. Roman Numerals From Integers
    518
  24. Get A Print Dialog Box By Clicking A Button
    822
  25. Keyboard event detection (Key Tracker)
    1,093
  26. IsIn For Arrays
    572
  27. Confirm The Link Clicked
    632
  28. Enlarge Image
    517
  29. Dual Scroller
    335
  30. Cursor Changer
    387
  1. Icon Coupled Url
    429
  2. Button That Will Close The Browser Window
    353
  3. Button That Will Show The Page's Source
    390
  4. Add A Scrolling Status Bar Text To Your Site
    411
  5. Add This Page To Favorites
    406
  6. Code To Clear Browser History
    378
  7. Remove the spaces before begin and after end of text
    342
  8. How To Close A Pop-up Window ?
    449
  9. Pop Up Window On Top
    523
  10. How to display message on browser status bar ?
    481
  11. New Window
    613
  12. Firefox Web Tweaking
    381
  13. Color Table
    371
  14. Send An Email Using A Bean
    1,020
  15. jQuery and Function Chaining
    540
Recently updated
  1. Google OAuth Token Expiration: Causes and Solutions
    29
  2. Why 100% SEO Guarantees Better User Engagement and How to Achieve It in Your Service
    55
  3. Why SPF and DKIM Are Essential for Linux Email Servers?
    49
  4. How do I create animated background for Google Meet?
    22,864
  5. MaxMind GeoLite2 vs. DB-IP Lite vs. ip-api.com: Choosing the Right Free IP Geolocation Solution
    271
  6. Meet Valkey: Why Redis Changed Its License, Why Valkey is Better, and How to Use It as a Drop-in Replacement
    103
  7. How Rogue Web Scrapers Are Stealing My Content and Destroying My Server
    168
  8. Array of arguments passed to script in PHP
    97
  9. Invalid Auction Storms in Ad Tech
    106
  10. Building MRC-Compliant Instrumentation in Ad Tech: Implementation Steps and Key Challenges
    207
  11. The Two Clocks of Ad Server Architecture
    77
  12. Frequency Cap Architecture Overview
    526
  13. Collecting Proof-of-Play from 100,000 Screens
    152
  14. Vector Search in Relational Databases (RDBs): Trends & Usage Environments
    302
  15. What is RedisVL?
    114
  16. Designing a Skill Registry Architecture: Minimize Token Usage and Maximize AI Performance
    246
  17. TPU & GPU Cluster Management Tools
    257
  18. The Concept of Scaffolding in AI Agents
    244
  19. Beyond Static Pipelines: Architecting LLM Multi-Agent Systems for Autonomous Workflow Orchestration
    596
  20. AI-DLC vs. AI-SDLC: Model-Centric vs. System-Centric AI Development
    267
  21. Fine-Tuning Open-Weight LLMs: Training, Licensing, and Deploying Custom Models with Ollama
    353
  22. Inside the Next-Generation Streaming Architecture: Ultra-Low Latency, SGAI, and AI Codecs
    206
  23. Machine Learning: Training vs. Ranking
    229
  24. The Continuous Learning Machine: Designing a Loop That Actually Turns
    228
  25. The Next-Gen Low-Latency Standards: LL-HLS & MoQ
    202
  26. Designing a Data Curation System Around a Vector Database
    230
  27. Extracting Context from Live Video: The Architecture Got Simpler When We Stopped Building Features
    263
  28. The New Ad Stack Behind Live Sports Streaming: Inside SGAI, EABN, and the Standards Race to Fix Live Monetization
    671
  29. Designing MLOps Architectures to Handle Seasonal Data Drift in EV Fleet Models
    200
  30. From 15 to 40+ FPS: Accelerating PyTorch Object Detection on Automotive ECUs
    232