使用javascript将脚本元素附加到头部不起作用

时间:2012-09-11 19:20:06

标签: javascript jquery google-chrome

在我的主页面中我想检查,如果它尚未加载,请包含edit_profile.js脚本

$(function(){


  if (typeof is_editprofilejs_loaded == "undefined") {

       alert('undefined');
       var e = document.createElement("script");
       e.src = base_url+"js/edit_profile.js";
       e.type = "text/javascript";
       document.getElementsByTagName("head")[0].appendChild(e);

  }
  else
  {

      alert('its loaded.');

  }



})

在我的script.js我有

   $(function(){
        var is_editprofilejs_loaded = true ;
        alert('now its loaded ! ');
       //some code 
   })

所以当我在firefox中运行我的代码时,我会收到这些消息

1 - undefined
2 - now its loaded ! 

但在Chrome中我只是

1 - undefined

当然,所包含页面中的代码不起作用 怎么了 ?

1 个答案:

答案 0 :(得分:1)

为什么在DOMready函数中有这些函数?

这也是失败的原因:您的变量is_editprofilejs_loaded是该匿名函数的本地变量,并且永远不会在主文件的函数中定义。

  • 删除不必要的功能和/或
  • 通过分配window.is_editprofilejs_loaded = true并通过if (window.is_editprofilejs_loaded)
  • 进行检查,使变量显式为全局变量
是的,你的script.js最后错过了); - 不确定是否只是一个错误