dojo on.emit won't work in FireFox?

Seems simple enough, using the Dojo toolkit click a div and trigger an anchor tag on the page.

The code in listing 1 below works on:
Chrome version 35
Internet Explorer 11

Won’t work on FireFox ver 30.

Dojo’s dojo/on module has the emit() method that provides a normalized way to dispatch events. It is supposed to be cross-browser.

From the info on this page, Disabling native events when using Firefox with WebDriver, it sounds like Dojo may, like WebDriver, be using FireFox’s native event facilities and failing.

[sourcecode language=”html”]
<!DOCTYPE html>
<html >
<head>
<script>dojoConfig = {async: true, parseOnLoad: false}</script>
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.10.0/dojo/dojo.js"></script>

<style media="screen" type="text/css">
.bold {font-weight: bold;}
.box {border:1px black solid;margin-top:4em;margin-left:8em;}
</style>

<script>
require([‘dojo/ready’,’dojo/on’,’dojo/dom’,
‘dojo/query’,’dojo/domReady’],
function(ready,on,dom,query){
ready(function(){
var nde = query(‘#div123’);
nde.on("click",function(evt){
on.emit(dom.byId(‘target’),"click",
{bubbles:false,cancelable:false});
});
});
});
</script>

</head>
<body class="claro">
<div id="div123" class="bold box">click me!</div>
<div class="box">
<a id="target" href="javascript:alert(‘hello’)">will trigger this link</a>
</div>
</body>
</html>
[/sourcecode]
Listing 1

2 thoughts on “dojo on.emit won't work in FireFox?”

    1. I searched for solution, nothing found. Tried many things, but could not get that to work. Now I don’t remember what I did to avoid not using it. I should have posted the issue on the Dojo forums I guess.

Leave a Reply

Your email address will not be published. Required fields are marked *