addLoadEvent failed to pass on the Event object.
Does not matter for any handlers used in Jenkins, but can break third-party frameworks. In particular mixpanel-2.1.min.js seems to detect when this mistake is made and somehow disables some Jenkins handlers, causing e.g. “LOADING” to stay on job config pages and breaking behavior.js (but only on Firefox). Using addEventListener/attachEvent where available also works, but this fix is a bit simpler and more general. https://gist.github.com/1930440 would also work but again seems like overkill here. To reproduce: diff --git a/core/src/main/resources/lib/layout/layout.jelly b/core/src/main/resources/lib/layout/layout.jelly index 1fb3fec..c1337c4 100644 --- a/core/src/main/resources/lib/layout/layout.jelly +++ b/core/src/main/resources/lib/layout/layout.jelly @@ -88,6 +88,19 @@ ${h.initPageVariables(context)} <x:doctype name="html" /> <html> <head> +<script type="text/javascript"><![CDATA[ +(function(c,a){window.mixpanel=a;var b,d,h,e;b=c.createElement("script"); + b.type="text/javascript";b.async=!0;b.src=("https:"===c.location.protocol?"https:":"http:")+ + '//cdn.mxpnl.com/libs/mixpanel-2.1.min.js';d=c.getElementsByTagName("script")[0]; + d.parentNode.insertBefore(b,d);a._i=[];a.init=function(b,c,f){function d(a,b){ + var c=b.split(".");2==c.length&&(a=a[c[0]],b=c[1]);a[b]=function(){a.push([b].concat( + Array.prototype.slice.call(arguments,0)))}}var g=a;"undefined"!==typeof f?g=a[f]=[]: + f="mixpanel";g.people=g.people||[];h=['disable','track','track_pageview','track_links', + 'track_forms','register','register_once','unregister','identify','name_tag', + 'set_config','people.identify','people.set','people.increment'];for(e=0;e<h.length;e++)d(g,h[e]); + a._i.push([b,c,f])};a.__SV=1.1;})(document,window.mixpanel||[]); + mixpanel.init("…something valid here…"); +]]></script> ${h.checkPermission(it,permission)} <title>${h.appendIfNotNull(title, ' [Jenkins]', 'Jenkins')}</title>
Showing
想要评论请 注册 或 登录