原始javascript应该在.js文件中吗?如何包含?

原始javascript应该在.js文件中吗?如何包含?,javascript,jquery,include,external,Javascript,Jquery,Include,External,假设我有如下页面 <html><head></head><body><!--STUFF--> <script> if(SomeBooleanVariable) { $.getScript('js/file.js'); } </script> </body></html> 这根本不起作用。当我将file.js的内容直接包含到

假设我有如下页面

<html><head></head><body><!--STUFF-->
   <script>
       if(SomeBooleanVariable) {
           $.getScript('js/file.js');
       }
    </script>
 </body></html>
这根本不起作用。当我将file.js的内容直接包含到HTML中时,效果很好,但是js似乎没有被正确包含。我曾尝试将“alert(3);”放在file.js的顶部,但没有触发。我尝试了以下方法:

 $("head").append("<script src=\"js/file.js\" />");
 $(document).append("<script src=\"js/file.js\" />");
 -and-
 document.write("<script src=\"js/file.js\" />");
$(“head”)。追加(“”);
$(文件)。附加(“”);
-及-
文件。填写(“”);

如果要动态加载该.js文件,请将代码更改为:

if(SomeBooleanVariable) {
    $.getScript("ajax/test.js")
    .done(function(script, textStatus) {
        console.log(textStatus);
    })
    .fail(function(jqxhr, settings, exception) {
        console.log("Triggered ajaxError handler.");
    });  
并查看控制台中是否有任何错误

例如,您可能正在使用mod_rewrite,jQuery尝试相对于子页面所在的“文件夹”加载脚本。示例:您是@。在本例中,jQuery将在驻留@时尝试加载。在这种情况下,请使用绝对路径。因此,不是:

js/file.js
写:

/js/file.js

尝试在
$之前的
if
中添加警报。getScript
?您是否看到服务器日志中请求了
file.js
?听起来像eval()可以工作,但eval是邪恶的,所以我有点困惑。在chrome中点击F12,选择网络菜单,查看是否加载了file.js,没有任何错误。在哪个浏览器中,在哪个操作系统上,这不起作用?在我看来,上面包含的代码与文件中包含的代码并不完全相同,但当我尝试使用最新版本的jQuery(1.8.3)和只包含警报语句的外部JavaScript文件执行相同的操作时,效果非常好。请详细说明代码的细节。如果jQuery包含在脚本之前的某个页面中,那么代码应该可以正常工作。确保.js文件的路径正确。您不希望在不需要时加载文件。坏习惯。取决于文件的大小。只包含几行的文件不会增加大量开销,OP也不会显示真正的代码。这个解决方案需要手动更改一百万个html文件。根本不可行。对不起,这是我的错误。My file.js实际上包含一个错误。我使用的是$(“head”).append(“js/file.js”);。你的方法在技术上也很有效。你可以拥有代表和投票权。谢谢
/js/file.js