2011-12-14 45 views
5

我想通過刪除HTML和body標籤來在我的網頁中加載一個HTML頁面作爲div。但是HTML頁面有<body onload=" ... " >,我需要這個函數才能繼續工作。似乎<div onload=" ... " >不起作用。如何在不直接編輯我的原始網站代碼(php)的情況下將此onload函數插入我的網站正文(僅限此頁面)?如何製作div加載函數?

回答

3

可以使用jQuery.load頁面的內容加載到您的div

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

上面的代碼放在包含DIV的頁面。帶有onload函數的頁面不會被更改。

+1

謝謝,這個問題解決了! – Jenny 2011-12-14 08:08:42

1

你可以在加載的頁面(一旦插入DIV中),這會盡快它的加載執行的末尾添加一個額外的JavaScript代碼。像這樣:

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

只記得要讓JavaScript可用於您的頁面。我的意思是,如果在onload="..."中調用的JavaScript函數在加載html文檔的<head>中定義,並且您將<head>丟出,則這將不起作用。

1

你以前用過jQuery嗎?如果是這樣,只是讓你的div的ID(讓我們說「SomeDiv」),然後使用類似這樣的「準備就緒」的方法:

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

如果你想在一個div添加onload事件,你不能,但您可以添加onkeydown並在文檔加載時觸發onkeydown事件。

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

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

不是最好的,但一個方法是檢查在div定期,如果它的加載:

var myInterval = setInterval(function() { 
if ($('.mydiv') && $('.mydiv').width() > 0) { 
// write your logic here 
clearInterval(myInterval); 
    } 
}, 3000);