qq_請勿投食_0
2016-12-09 20:27:21
window.onload?=?function?positionmessage()?{
var?ele?=?document.getElementById("message");
console.log("window?onload="?+?ele);
ele.style.position?=?"absolute";
ele.style.top?=?"200px";
ele.style.left?=?"200px";
console.log("left="?+?ele.style.left);
}
function?move()?{
var?ele?=?document.getElementById("message");
console.log("move="?+?ele);
ele.style.left?=?"100px";
console.log("left="?+?ele.style.left);
}
move();
控制臺:
[Web瀏覽器]?"move=null" /位置動畫相關(guān)/position.js?(11)
[Web瀏覽器]?"Uncaught?TypeError:?Cannot?read?property?'style'?of?null" /位置動畫相關(guān)/position.js?(12)
[Web瀏覽器]?"window?onload=[object?HTMLParagraphElement]" /位置動畫相關(guān)/position.js?(3)
[Web瀏覽器]?"left=200px" /位置動畫相關(guān)/position.js?(7)為什么在window.onload 之外那次 取message的對象返回的是NULL?我試了一下,如果都放到window.onload 里面,就可以執(zhí)行。為什么不能放外面?
3 回答

__innocence
TA貢獻313條經(jīng)驗 獲得超208個贊
雖然我沒有看到你的HTML代碼,但是我已看穿了一切!
你仔細(xì)看一下你的html代碼,問題就在你引入js文件的那一句話,我100%肯定,你這一句話是寫在 div id=“message”之前!這個是不行的。
html代碼有執(zhí)行的順序,一般情況下是按照文檔從上到下的順序,也就是說,div id=“message”還沒加載,你的document.getElementById("message")就開始運行了,所以才找不到這個元素。而window.load這個函數(shù)很特別,它是在整個文檔加載完之后再執(zhí)行里面的js代碼,所以放在window.load里面可以執(zhí)行。
解決方法和簡單,把引入js的文件的那一段寫在靠后的位置,其實,js的引入本來就是要寫在文檔靠后的位置,這可以說是一個常識,我一般寫在</body>前面。
打字這么多,給個采納吧 ~ ~解決一個問題的同時,要養(yǎng)成良好的編碼習(xí)慣,js的引入放在文檔后面,切記!
添加回答
舉報
0/150
提交
取消