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
Post a Comment