2011-06-18 39 views
5

Nói rằng tôi có một cái gì đó như thế nàyTrình tự thực hiện JS trong các trang HTML

<script type="text/javascript" src="somefile.js"></script> 
<div>something</div> 
<script type="text/javascript"> 
// Some INLINE javascript 
</script> 

Có đảm bảo (bởi tất cả các trình duyệt) mà khi mã inline js được thực hiện cả hai somefile.js đã được tải VÀ nó có thể hoạt động trên div trước nó?

+0

Nhìn này: http://stackoverflow.com/questions/19035/javascript-load-order –

Trả lời

3

Đảm bảo rằng bạn có thể truy cập mã từ somefile.js.

Tuy nhiên, DOM chưa sẵn sàng tại thời điểm này, do đó bạn không thể truy cập vào div. Nếu bạn muốn làm như vậy, sử dụng cấu trúc sau:

<div>something</div> 
<script type="text/javascript"> 
// document.write calls go here, not in onReady 

function onReady() { 
    document.getElementsByTagName('div')[0].setAttribute('class', 'loaded'); 
    // Or other inline JavaScript 
} 

if (document.addEventListener) { 
    document.addEventListener('DOMContentLoaded', onReady, false); 
} else { 
    window.onload = onReady; 
} 
</script> 

jQuery đáng kể đơn giản hoá nó, bạn sẽ chỉ cần viết

$(function() { 
    // inline code ... 
}); 
+0

Tôi không thể truy cập div từ somefile.js hoặc từ nội tuyến

Các vấn đề liên quan