2011-03-04 85 views
1

我是比較新的Javascript和我想寫這短短的一段代碼,發現了,順便說一下,因爲例如在許多網站,但它不工作:問題包括JavaScript動態

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

我沒有收到任何錯誤消息,但警報函數返回空白,並且appendChild不會附加任何內容。 GTV.js文件是與HTML相同的目錄中的本地文件。我知道我可以用其他更簡單的方式包含js文件,但這只是加載的一箇中間步驟,而不是來自其他站點的另一個頁面GTV.js。 我錯在哪裏?順便說一句,我使用的是Firefox 4.0測試版,但隨着IE8同樣的情況 感謝

更新

感謝您的答案。

爲了:1)湯姆:我只是試圖在運行時包含一個腳本 - 應該很容易,我見過很多的例子...只是沒有爲我工作,不明白什麼是錯誤2)Xs10tial:我沒有絲毫的想法你在說什麼 - 對不起,這當然是我缺乏經驗3)阿塔納斯:我嘗試了你的建議,但它不起作用。順便說一下,看看你的例子,我應該把我的2行代碼放在if循環中(你寫「//執行腳本的地方」)的末尾,他們現在在哪裏? 4)Jayantha:不起作用。順便說一句,你爲什麼指的是CSS而不是js?

還有其他建議嗎?

+1

你爲什麼要包括這樣的腳本? – 2011-03-04 12:27:56

回答

-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); 
} 
+0

問題並沒有說他正在使用.NET – RYFN 2011-03-04 12:41:10

+0

-1對於.NET膨脹。 – Raynos 2011-03-04 16:12:37

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); 
0

嘗試USNG此,

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);