2011-10-26 104 views
0

我需要創建一個jQuery的對話與同一個域下指向一個頁面的iframe。我只想要該頁面的特定ID,而不是全部。我不能使用.load(),因爲有源頁面上的鏈接,如果有人點擊了,然後用對話框刷新頁面,我不能有。我希望有一種解決方法。這是我的嘗試:jQuery的iframe中選擇源DOM元素

$('<iframe src="'+frameurl+'" id="dialogframe" frameBorder="0" />').contents().find("#idthatiwant").dialog({attributes}); 

回答

0

這可能不是你在尋找什麼,如果沒有,我appologize,但它的工作對我來說,當我是一樣的危機下。

的想法是設置一個div,正常AJAX的href,但覆蓋點擊提交事件,而不是AJAX使用。因此,它像iframe一樣工作,但實際上並不是iframe。

我有一個名爲externalContainer DIV,和這裏的JS:

$('#externalContainer form').live("submit", function(event) { 
    $(this).ajaxSubmit({target: '#externalContainer'}); 
    return false; 
}); 

$('#externalContainer a').live('click', function(event){ 
    var jthis = $(this); 
    if (jthis.attr('href') != "#"){ 
    event.preventDefault(); 
     $('#externalContainer').load(jthis.attr('href')); 
    } 
}); 

話,我會簡單地調用$('#externalContainer').load("file.php");加載新的HTML

這並不一定所有的「功能」。正常的iframe,但可能能夠爲你需要的工作。

應當指出的是,我發現這個技術,我相信對計算器另一個問題:)。

編輯: 應該指出,這也允許來自「iframe」內的ajax的東西,這就是爲什麼我確認href不等於'#'。如果你打算使用表單提交的東西,這也取決於ajaxForm jquery插件。