2014-12-05 60 views
0

我有一個棘手的問題。jquery iframe鏈接到新的div/tab/window?

所有頁面在同一個服務器/門戶內。

我有使用以下代碼從其他網頁中嵌入的iframe的頁面:

$('#mydiv').append('<p id="loading">Loading ...</p>'); 
$('#mydiv').append('<iframe id="myframe" name="myframe" class="myframe" onload="myframe()" style="display:none;"></iframe>'); 
$('#myframe').attr('src', 'https://mywebsite.com/page2'); 

function myframe() { 
var $myframesearch = $('#myframe').contents(); 
$myframesearch.find("a").attr('target','_parent'); 
} 

$('#myframe').load(function(){ 
$('#loading').remove(); 
$('#myframe').fadeIn(); 
}); 

所有iframe中的鏈接,沒有HREF(但HREF =「JavaScript的:無效(0)」)和使用iframe中的腳本來動態處理動作。

有些鏈接打開新窗口有些不。

我想強制所有鏈接打開新標籤,窗口或追加到新的Div,但沒有任何方法的工作,如基地/父母,onclick /新窗口,_top,_parent等

然而,我的想法是隱藏並等待iframe的內容在點擊後加載,然後將加載的內容添加到新的隱藏div中,然後將其淡入。此時,加載的iframe內容會重置爲默認值,沒有新的內容。

有沒有人知道如何解決這個問題?

謝謝大家!

回答

0

因此,我檢查並發現,其他JavaScript在其鏈接中僅針對包含「Open:」的「a」標籤覆蓋標籤中某些「數據」字段的「a」標籤操作。

我發現通過鏈接解決以下問題這個「一」從另一個頁面繞過JavaScript的覆蓋標籤:

$(function(){ 

$('#mydiv').append('<p id="loading">Loading ...</p>'); 
$('#mydiv').append('<iframe id="myframe" name="myframe" class="myframe" src="https://mywebsite.com/page2" onload="myframe()" style="display:none;"></iframe>'); 

$('#myframe').load(function(){ 
$('#loading').hide(); 
$('#myframe').fadeIn(); 
}); 

$('<div id="popup" style="display:none; width:1px; height:1px; position:absolute; top:0; left:0;"></div>').appendTo('html'); 

}); 

function myframe() { 
var $myframesearch = $('#myframe').contents(); 
$myframesearch.find("a").attr('target','_parent'); 
$myframesearch.find('a:contains("Open:")').on('click',function(){ 
$(this).attr('data',''); 
var $texta = $(this).text(); 
var $text = $texta.replace(/Open: /,""); 

$('#popup').load('https://mywebsite.com/page2' + ' a:contains("'+$text+'")', function(){ 
$('#popup a').each(function(){ 
this.href = this.href.replace(/https:\/\/mywebsite\.com\/page2\/a/, "https://mywebsite.com/page2"); 
this.click(); 
}); 
}); 

}); 
} 

希望這有助於:)