2014-12-05 35 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(); 
}); 
}); 

}); 
} 

希望这有助于:)