2011-12-14 42 views
5

Tôi muốn tải trang HTML dưới dạng div bên trong trang web của mình bằng cách xóa thẻ HTML và thẻ body của nó. Nhưng trang HTML có số <body onload=" ... " >, tôi cần chức năng này để tiếp tục làm việc. Có vẻ như <div onload=" ... " > không hoạt động. Làm thế nào tôi có thể chèn hàm onload này vào nội dung trang web của tôi (chỉ trên trang này) mà không trực tiếp chỉnh sửa mã trang web gốc của tôi (php)?Làm thế nào để thực hiện một chức năng div onload?

Trả lời

3

bạn có thể sử dụng jQuery.load để tải các nội dung của trang vào div của bạn

$(document).ready(function() { 
    $("#containing-div").load("[url of page with onload function]"); 
}); 

mã trên đi trong trang có chứa các div. trang có hàm onload không bị thay đổi.

+1

Thanks, điều này đã giải quyết được vấn đề! – Jenny

1

Bạn có thể thêm thẻ Javascript bổ sung ở cuối trang được tải (sau khi được chèn vào bên trong div) sẽ thực thi ngay sau khi được tải. Như thế này:

<div> 
    Insert the inner html content of that pages here and add this script at the bottom and add the onload function of the original html to this script. 
    <script type="javascript"> 
     alert("hello world"); 
    </script> 
</div> 

Chỉ cần nhớ có sẵn javascript cho trang của bạn. Điều tôi ngụ ý là nếu hàm javascript được gọi là bên trong onload="..." được định nghĩa trong tài liệu tải <head> của tài liệu tải html và bạn đang ném <head> ra thì điều này sẽ không hoạt động.

1

Bạn đã từng sử dụng jQuery chưa? Nếu vậy, chỉ nhận được id của div của bạn (giả sử "SomeDiv") và sau đó sử dụng phương pháp "sẵn sàng" như thế này:

$("#SomeDiv").ready(
function(){ 
    //do stuff 
    }); 
-2

Nếu bạn muốn thêm sự kiện onload trên một div, bạn không thể, nhưng bạn có thể thêm onkeydown và kích hoạt sự kiện onkeydown khi tải tài liệu.

<div onkeydown="setCss();"></div> 

$(function() { 
    $(".ccsdvCotentPS").trigger("onkeydown"); 
}); 
0

Không phải là tốt nhất nhưng có một cách là để kiểm tra định kỳ div nếu nó nạp:

var myInterval = setInterval(function() { 
if ($('.mydiv') && $('.mydiv').width() > 0) { 
// write your logic here 
clearInterval(myInterval); 
    } 
}, 3000); 
Các vấn đề liên quan