要在一个按钮上加载一个js文件里的代码,这个对我来说还真是有点难,刚刚能写几句js的我,面对这个问题,手足无措。于是,去请教同事,在同事的帮助下,写完了一段原生的加载js代码的片段。
(function(){ function createStandardXHR() { try { return new window.XMLHttpRequest(); } catch( e ) {} } function createActiveXHR() { try { return new window.ActiveXObject( "Microsoft.XMLHTTP" ); } catch( e ) {} } var xhr = window.ActiveXObject ? function() { return !this.isLocal && createStandardXHR() || createActiveXHR(); } : createStandardXHR(); xhr.onreadystatechange=function() { if (xhr.readyState==4) { if((xhr.status >= 200 && xhr.status <= 300) || xhr.status == 304){ eval(xhr.responseText); } } } xhr.open('get','url',false); xhr.send(null); })();
用ajax请求去请求js里的代码,这段代码我要消化一会儿。
另一个同事看完我们写的这段代码,说这样子去请求不好,还涉及到跨域的问题。(跨域,我要上网查了,嘻嘻)他建议我去创建一个element对象,然后拼一个script标签出来。嗯,这个主意不错。
(function loadScript(url){ var script = document.createElement("script"); script.type = "text/javascript"; script.setAttribute('charset','utf-8') var d=new Date(),token = d.getFullYear()+ '' + (d.getMonth()+ 1) + '' + d.getDate(); script.src = "url?" + token; document.body.appendChild(script); })();