2011-02-24 74 views
0

我有幾個頁面被調用到ajax選項卡區域。被調用的頁面上有javascript,但是當加載到選項卡上時,document.ready函數將不會爲每個頁面加載。相反,我不得不在頁面上放一個按鈕來手動加載函數。 Iv試圖將document.ready函數放在被調用的頁面和調用它的頁面上,但它仍然不會運行。有沒有其他方式可以使用,而不是有按鈕?我不想按鈕顯示我的網頁上有被點擊它看起來好之前=(頁面調用標籤頁時Document.ready腳本不起作用

繼承人調用的頁面的代碼:

onclick="createNewTab('dhtmlgoodies_tabView1','Remote Access','','RemoteAccess.html',true);return false">Remote Access 

所有的JavaScript文件連接到主頁。

一個按鈕位於遠程訪問網頁:

input type='button' value='Load.' onclick='loadlightbox()' 

的loadlightbox功能是conected主頁面的JavaScript文件中:

loadlightbox = (function() { 
    $('#gallery a').lightBox({fixedNavigation:true}); 
}); 
+0

你能發表你的代碼樣本嗎?另外,你使用的JavaScript框架,或者是這個普通的JavaScript? – 2011-02-24 19:17:26

+0

我的一些代碼目前在這裏:http://tonismicrosoftsurface.comlu.com/然而,我不知道爲什麼要通過它來談論它。不知道它是我的電腦還是那個網站。我不記得如何最新這一個,但你可以嘗試它,如果它的工作 - PS你需要打開它在Firefox中它完全改變任何其他瀏覽器 – Toni 2011-02-24 19:44:15

+0

@Chris我可以通過電子郵件發送一個壓縮版本關閉我的電腦if你給我你的地址 – Toni 2011-02-24 19:45:48

回答

0

當您使用JavaScript將內容加載到頁面中時,沒有document.ready事件被觸發。大多數庫只是堅持使用innerHTML返回的內容。大多數庫只是從responseText中提取JavaScript代碼並通過eval()運行它。

您可能想要忘記整個document.ready,並在末尾粘貼代碼塊。

+0

只有在代碼塊結束時纔會有潛在的後果嗎?就像我們使用document.ready的相同類型的原因,而不是僅僅在正常頁面的末尾粘貼javascript,或者在您追加到DOM的情況下可以這樣做(因此主機頁面已經完全加載已經)? – MichaC 2011-02-24 19:28:07

+0

你必須原諒我對這一切都是新的。即時通訊我試圖做的是加載頁面到主頁上的標籤(所有其他頁面被調用到此頁面上的標籤)被調用的頁面有像jQuery的燈箱或jQuery數據表的東西,但爲了這些工作即時通訊把這些頁面上的按鈕手動加載代碼。所以你說我只需要將這些代碼移動到頁面底部即將調用,並且已經將document.ready添加到它了? – Toni 2011-02-24 19:38:27

0

document.ready函數不會觸發,因爲頁面(文檔)已經加載。遠程頁面作爲內容而不是文檔加載。

由於您使用的是jQuery,您應該利用.load function的優勢,並且您應該採取unobtrusive approach將onclick附加到您的鏈接。這可以讓你的JS和代碼分開。

//Using Jquery load 
$("#id_of_link").click(function(e){ 
    e.preventDefault(); 
    $('#dhtmlgoodies_tabView1').load("RemoteAccess.html", 
    function(){ 
      //callback code here 
     }) 
}) 
+0

好吧,我已經把: – Toni 2011-02-24 21:55:13