问题包括动态的javascript

时间:2011-03-04 12:26:28

标签: javascript

我对Javascript相对较新,我正在尝试编写这段简短的代码,顺便说一下,在许多网站上都可以找到,但它不起作用:

var x = document.createElement("script");
x.type="text/javascript";
    x.src="GTV.js";
alert(x.textContent);
document.body.appendChild(x);

我没有收到任何错误消息,但是alert函数返回空白,而appendChild没有附加任何内容。 GTV.js文件是与HTML相同的目录中的本地文件。我知道我可以用其他更简单的方式包含js文件,但这只是一个中间步骤,而不是GTV.js,从另一个站点加载另一个页面。 我哪里错了?顺便说一句,我使用的是Firefox 4.0 Beta,但IE8也是如此 感谢

更新

感谢您的回答。

按顺序:1)Tom:我只是想在运行时包含一个脚本 - 应该很容易,我已经看过很多例子......只是不适合我而且不明白什么是错的2)Xs10tial:我不知道你在说什么 - 抱歉,这肯定是我缺乏经验3)Atanas:我尝试了你的建议,但它不起作用。顺便说一下,看看你的例子,我应该把我的2行代码放在if循环中(你在哪里编写“//脚本被执行”),最后它们在哪里? 4)Jayantha:不起作用。顺便问一下,为什么你指的是css而不是js?

还有其他建议吗?

3 个答案:

答案 0 :(得分:0)

从代码添加的SCRIPT元素以异步方式加载和执行。加载并执行JavaScript文件时会引发“加载”或“readystatechange”(在Internet Explorer中)事件。这是一个示例:

var scriptElement = document.createElement("script");
scriptElement.onload = scriptElement.onreadystatechange = function() {
   var readyState = scriptElement.readyState;
   if (!readyState || readyState === "loaded") {
       //The script is executed
   }
}
scriptElement.src = "GTV.js";
document.body.appendChild(scriptElement);

答案 1 :(得分:0)

尝试使用它,

var fileref = document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", "../../GTV.css");
document.getElementById('css').parentNode.removeChild(document.getElementById('css'));
document.getElementsByTagName("head")[0].appendChild(fileref);

答案 2 :(得分:-1)

将ScriptManager添加到页面标记。然后在代码背后:

protected override void OnInit(EventArgs e)
        {
            if (ScriptManager.GetCurrent(Page) != null)
            {
                if (!ScriptManager.GetCurrent(Page).Scripts.Contains(new ScriptReferenceGTV.js")))
                {
                    ScriptManager.GetCurrent(Page).Scripts.Add(new ScriptReferenceGTV.js"));
                }
            }

            base.OnInit(e);
}