有时候需要在网页中某个div载入之后,动态引入一段javascript,IE下的解决方案:
- newjs.onreadystatechange = function () {
- if (newjs.readyState == 'loaded') {
- // ready!
- }
- }
- newjs.onload = function () {
- // ready!
- }
主要利用了onload以及onreadystatechange事件。把这个加以利用,也能动态载入外部css。下面是同时适合Ie/firefox的写法。
- var css;
- function include_css(css_file) {
- var html_doc = document.getElementsByTagName('head')[0];
- css = document.createElement('link');
- css.setAttribute('rel', 'stylesheet');
- css.setAttribute('type', 'text/css');
- css.setAttribute('href', css_file);
- html_doc.appendChild(css);
- // alert state change
- css.onreadystatechange = function () {
- if (css.readyState == 'complete') {
- alert('CSS onreadystatechange fired');
- }
- }
- css.onload = function () {
- alert('CSS onload fired');
- }
- return false;
- }
- var js;
- function include_js(file) {
- var html_
doc = document.getElementsByTagName('head')[0]; - js = document.createElement('script');
- js.setAttribute('type', 'text/javascript');
- js.setAttribute('src', file);
- html_doc.appendChild(js);
- js.onreadystatechange = function () {
- if (js.readyState == 'complete') {
- alert('JS onreadystate fired');
- }
- }
- js.onload = function () {
- alert('JS onload fired');
- }
- return false;
- }
这里是Demo,有动态载入css以及js的例子。
发表回复