程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> js加載文件-js文件加載問題求解,總是報錯

js加載文件-js文件加載問題求解,總是報錯

編輯:編程綜合問答
js文件加載問題求解,總是報錯

試了各種方法都不好使
主要為了測試加載機制,以便把test.js提取出來加密
《script type="text/javascript" src="test.js" charset="utf-8"》 《/script》
《script》
test();//alert(123);test中就一個函數,彈出123;如此加載一切正常
《/script》

下面我來換種我很鐘意的調用方式,就不行了,高手求解:

var str1="test.js";
var oHead=document.getElementsByTagName('head').item(0);
var oScript=document.createElement("script");
oScript.type="text/javascript";
oScript.src=str1;
oHead.appendChild(oScript);
test();//test undefined

我接著試著這幾種操作,仍然無效:
1:更換相對絕對路徑
2:最先載入:
window.onload=myLoadingJs(...);
$().ready(function(){test();})//still undefined
錯誤只有一個就是test()未定義,難道加載永遠跑調用後面去了嗎
//FF
順便吐糟一下,提問的編輯器太渣了點,開始沒光標,接著發不出去,接著遇到是發代碼時不易操作,出來好多行虛線神馬東西,然後遇到我script包著的js沒顯示,暈,光標又不見了,我去~
光標還是沒出現,我得先打個abc才知道在哪塊。順再吐糟一下,CSDN的郵箱,裡面神馬東西,太亂了,一天到晚的亮我都找不到哪條造成一直紅點的,沒原來好了,我回答的問題別人再回答了,也通知我。。。謝謝了額。。。

最佳回答:


var str1="test.js";
var oHead=document.getElementsByTagName('head').item(0);
var oScript=document.createElement("script");
oScript.type="text/javascript";
oScript.src=str1;
oHead.appendChild(oScript);
test();//test undefined

失敗是因為 加載是一個異步的過程和需要時間

你apend完了(這個時候 script這個標簽會加載代碼 不過是異步的)
然後你直接 執行test.js裡面的代碼 當然沒有

$.getScript("test.js",
function(){
test();
}
);
這個是jquery的動態加載 你在回調裡面執行你的 test();

實際原因就是dom加載完後有一個加載成功的狀態事件 浏覽器兼容性實現方式不一樣 所以不細說了你自己搜索下

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved