使用javascript在页面末尾动态添加js文件?

使用javascript在页面末尾动态添加js文件?,javascript,tags,document,Javascript,Tags,Document,我想在标记之前的页面底部添加一个js文件 我正在尝试一种格式。但它不能正常工作 我的代码 var url = 'sample.js'; var script = document.createElement("script"); script.type = "text/javascript"; script.src = url; document.getElementsByTagName('body')[0].appendChild(script); 但它不起作用 现在我查一查 var x =

我想在
标记之前的页面底部添加一个js文件

我正在尝试一种格式。但它不能正常工作

我的代码

var url = 'sample.js';
var script = document.createElement("script");
script.type = "text/javascript";
script.src = url;
document.getElementsByTagName('body')[0].appendChild(script);
但它不起作用

现在我查一查

var x = document.getElementsByTagName('body');
alert(x.length);
它显示
0


如何将此js文件添加到页面底部。请告知

您正在head部分编写此代码,并且在执行此代码时,尚未创建body元素。这是出错的唯一原因。创建body元素后保留此代码。

您正在head部分编写此代码,并且在执行此代码时,body元素尚未创建。这是出错的唯一原因。创建主体元素后保留此代码。

请参阅代码

var body=document.body;
警报(“页面加载时的正文:“+正文”);
document.addEventListener(“DOMContentLoaded”,function()){
var bodyLoaded=document.body;
警报(“页面加载时的正文:“+bodyLoaded”);
变量url=”http://code.jquery.com/jquery-1.10.2.min.js";
var script=document.createElement('script');
script.type=“text/javascript”;
script.src=url;
script.onload=函数(){
var testP=$(“

”); html(“jqueryworked”); $(document.body).append(testP); } bodyLoaded.appendChild(脚本); });
如果第一次发出
警报
,您将得到
空值
。但在第二秒内(当body加载时),您将获得
HTMLBodyElement
。如果在加载body之前尝试将元素附加到head中的body,这就是您的错误。

请参阅代码

var body=document.body;
警报(“页面加载时的正文:“+正文”);
document.addEventListener(“DOMContentLoaded”,function()){
var bodyLoaded=document.body;
警报(“页面加载时的正文:“+bodyLoaded”);
变量url=”http://code.jquery.com/jquery-1.10.2.min.js";
var script=document.createElement('script');
script.type=“text/javascript”;
script.src=url;
script.onload=函数(){
var testP=$(“

”); html(“jqueryworked”); $(document.body).append(testP); } bodyLoaded.appendChild(脚本); });

如果第一次发出
警报
,您将得到
空值
。但在第二秒内(当body加载时),您将获得
HTMLBodyElement
。如果在加载body之前尝试将元素附加到head中的body,这就是您的错误。

您的代码可以正常工作。检查这里:,你也可以检查控制台,脚本在那里。那么,还有什么是不起作用的呢?除了这个代码,你还想做什么?等等,我可以给你发个链接@塞吉奥,请看链接和控制台。我不明白,我很困惑。如果我的代码中有任何错误,请建议尝试
var htmlElement=document.getElementsByTagName('body')[0]
不带appendChild,然后
htmlElement.appendChild(脚本)然后
警报(htmlElement.length)您的代码正常工作。检查这里:,你也可以检查控制台,脚本在那里。那么,还有什么是不起作用的呢?除了这个代码,你还想做什么?等等,我可以给你发个链接@塞吉奥,请看链接和控制台。我不明白,我很困惑。如果我的代码中有任何错误,请建议尝试
var htmlElement=document.getElementsByTagName('body')[0]
不带appendChild,然后
htmlElement.appendChild(脚本)然后
警报(htmlElement.length)但是我只需要运行这个脚本的头部分。因为我正在创建firefox插件。所以只有我需要这个方法,我不确定你的要求。如果您只想在head部分中编写此代码,您可以在head而不是body中添加(附加)此脚本??但我只需要在head部分中运行此脚本。因为我正在创建firefox插件。所以只有我需要这个方法,我不确定你的要求。如果您只想在head部分编写此代码,您可以在head而不是body中添加(附加)此脚本??
var body = document.body;
alert("Body when page loading: " + body);
document.addEventListener("DOMContentLoaded", function() {
    var bodyLoaded = document.body;
    alert("Body when page loaded: " + bodyLoaded);
    var url = "http://code.jquery.com/jquery-1.10.2.min.js";
    var script = document.createElement('script');
    script.type = "text/javascript";
    script.src = url;
    script.onload = function(){
        var testP = $("<p></p>");
        testP.html("JQuery worked");
        $(document.body).append(testP);
    }
    bodyLoaded.appendChild(script);
});