firefox - unable to receive event for dynamic javascript -


i have dynamic javascript creates elements, click event element handler... script included domain.

however firefox @ runtime gives security warning , not process click event (chrome works fine).

a simplified version below

<!doctype html> <html> <head><meta charset="utf-8"></head> <body> <h2 id="headertitle">test</h2> <br/>  <script type="text/javascript" src="somewhereelse.com/script.js"> </script> </body> </html> 

javascript include:

document.getelementbyid("headertitle").insertadjacenthtml('beforebegin',             "<button value='test' onclick='clickhandler(this)' >button</button>");  function clickhandler(evt){     alert("clicked"); } 

warning message:

security wrapper denied access property undefined on privileged javascript object. support exposing privileged objects untrusted content via exposedprops being gradually removed - use webidl bindings or components.utils.cloneinto instead. note first denied property access given global object reported.

i tried code here , worked fine me on firefox 50.1.0. =/

however, recommend use jquery deal events triggered dynamically created elements. jquery handles dom differently, it's cross-browser , it's made kind of situation. may solve problem. =d

try , change html to

<!doctype html> <html> <head><meta charset="utf-8"></head> <body> <h2 id="headertitle">test</h2> <br/> <script type="text/javascript" src="https://code.jquery.com/jquery-3.1.1.min.js"></script> <script type="text/javascript" src="somewhereelse.com/script.js"> </script> </body> </html> 

and js code to

document.getelementbyid("headertitle").insertadjacenthtml('beforebegin',             '<button value="test" class="clickable" id="btn1">button</button>');  $('.clickable').on('click', function() {     alert($(this).attr('id') + ' clicked'); }); 

that should make work! cheers! =)


Comments