2009-07-16 90 views
0

我需要從外部頁面獲取內容並將其作爲參數傳遞給函數。我查看了JQuery文檔中的url()方法,但它似乎只能用它將外部內容插入到div或其他HTML元素中。JQuery - AJAX load()方法幫助

基本上我需要做的是:

// I need to insert external page's content into the cont variable, how to do that? 
var cont; 
// so I can pass it to the bt() function (it's a tooltip plugin) 
$('.class').bt(cont, { 
    fill: '#2a4d6b', 
    cssStyles: {color: 'orange', fontWeight: 'bold', width: 'auto'} 
}); 

誰能告訴我,如果這樣的事情是可能的?

回答

1

您想使用.get(http://docs.jquery.com/Ajax/jQuery.get#urldatacallbacktype)加載的插入。它將回調函數作爲參數。下面將加載一個鏈接並將其顯示在警報中。

$.get('http://your.website.com/page.html', 
    function (data) { alert(data) }); 

你的例子改寫爲:

$.get('http://your.website.com/page.html', 
     function (data) { setClass(data); }); 

function setClass(cont) { 
    $('.class').bt(cont, { 
     fill: '#2a4d6b', 
     cssStyles: {color: 'orange', fontWeight: 'bold', width: 'auto'} 
    }); 
} 
2
$.load("http://someplace", function(data){ 
    $('.class').bt(data, { 
     fill: '#2a4d6b', 
     cssStyles: {color: 'orange', fontWeight: 'bold', width: 'auto'} 
    }); 
}); 

否?

也由外部,如何外部?你不能從另一個域獲得任何東西,否則這將工作

+0

同意,元素不必須是DOM – 2009-07-16 20:24:14

+1

的一部分,這是可行的,但比不用彷徨,其目的是使用這種方式可以說是低效率的。加載應該用來加載一個元素的內容,回調在那裏,所以你可以在加載的數據上執行JavaScript。 – 2009-07-16 20:31:21

+0

它在同一個域上。我可以使用相對URI嗎?如控制器/動作/ ID/53423? – 2009-07-16 20:32:56

-1

它應該是可能的。什麼應該工作(我沒有嘗試過這個我自己)是在頁面上做一個隱藏的IFRAME。然後,將它的src設置爲您需要獲取的URL,然後使用DOM訪問IFRAME的內容。如果有任何對你來說似乎不清楚的話,請回復此評論。