2009-06-03 49 views
1

我想通過jQuery的.load()函數引用遠程加載(注入)的HTML文件中的一些JavaScript文件。我正在嘗試在加載的HTML文件中使用的JavaScript文件已包含在加載的HTML父HTML頁面中。在jQuery中使用Javascript插入HTML元素

最初,我認爲在加載的HTML中引用這些文件會很好,因爲它包含在頁面中,但它似乎不起作用。

任何人都可以告訴我如何使用我的注入HTML文件的JavaScript?

+0

你能發表一些代碼嗎? – 2009-06-03 22:06:56

回答

1

如果我理解正確,聽起來好像您需要使用getScript() - 這會使用HTTP GET請求加載並執行本地JavaScript文件。

$.getScript(url, [callback]) 
0

如果腳本元素是你加載的HTML的一部分,那麼你可以把它添加到身體,它會工作。

例子:

$.ajax({ 
    //... 
    //... 
    success: function(response) { 
     // assuming response is a full HTML page 
     var r = $(response); 
     // append your content 
     $("#someContainer").append($("#someContent", r)); 
     // append the scripts 
     $("body").append($("script", r)); 
    } 
    //... 
    //... 
}); 

當然你也可以使用自己選擇的,這僅僅是一個例子。讓我知道這是如何解決你的。

0
  1. 如果test1.htm包含:

    $(文件)。就緒(函數(){$ ()負載( 'test2.htm '函數(){ ' 主'。 $('。result')。text('page has been''); }); });

  2. 和test2.html包含:<腳本類型= 「文本/ JavaScript的」 SRC = 「exscript.js」>在文檔的頭部</SCRIPT>

  • exscript.js包含:

    警報( '喜');

  • 如果你加載test1.htm,你會收到警報嗨。再見! :)

    0

    我相信你要找的是.live()

    .live()讓你「附加處理器爲當前選擇,符合其所有元素的事件現在還是未來。」

    例如:

    $(".clickme").click(function(){ 
        $(this).fadeOut(); 
    } 
    

    此代碼不會已經被注入到頁面.load()或獲得()

    但是,任何元素上工作,如果你這樣做:

    $(".clickme").live('click', function(){ 
        $(this).fadeOut(); 
    } 
    

    ...它甚至可以在通過javascript注入頁面佈局的元素上工作。

    更多的信息在jQuery AP

    相關問題