我有一個div,在我的網站上有多個頁面。我不想在新窗口中專門設置每個窗口,而是希望在特定窗格中打開所有鏈接。我如何使用HTML/CSS/JavaScript來做到這一點?使用HTML/CSS/Javascript在新頁面中打開鏈接
謝謝
我有一個div,在我的網站上有多個頁面。我不想在新窗口中專門設置每個窗口,而是希望在特定窗格中打開所有鏈接。我如何使用HTML/CSS/JavaScript來做到這一點?使用HTML/CSS/Javascript在新頁面中打開鏈接
謝謝
您可以使用JavaScript和jQuery。
首先我建議DIV的ID爲outgoing
。
<div id='outgoing'>
<a href='http://google.com'>Go to Google</a><br>
<a href='http://stackoverflow.com'>Look at SO!</a>
</div>
現在我們可以用簡單的JavaScript來dynamiclaly添加target='blank'
到這些鏈接:
$(function() {
$('#outgoing a').attr('target', '_blank');
});
你不能使用jQuery通過所有鏈接指定專區內循環,然後將目標設置爲「_blank」。
這裏是你如何能做到這一點與jQuery
,如果您有類似<div class="myLinks">...</div>
$('.myLinks a').attr("target", "_blank");
這將工作,但謹慎的話。如果有人在DOM完成加載之前點擊鏈接(較慢的連接),它將不會在新窗口中打開。 – Mark 2011-03-30 19:53:14
嗯,我想有兩個合理的方法來從錨在打開HREF一個新窗口。
node
並設置其target
到_blank
(<a href="foo" target="_blank"></a>
)使用JavaScript來捕捉click事件,防止默認行爲,並呼籲window.open()
var anchors = document.querySelectorAll('#mydiv a');
[].forEach.call(anchors, function(anchor) {
anchor.addEventListener('click', function(e) {
window.open(e.target.href, 'mywindow', '_blank');
e.preventDefault();
e.stopPropagation();
}, false);
});
那示例代碼是vanilla Javascript,它只能在兼容W3C的bro中工作wser(!= IE)。
如果你能負擔得起使用JS框架,生活會更容易,因爲所有這些都會爲你抽象出瀏覽器差異。
+1很好的答案。喜歡你在推薦框架之前先寫Javascript。 – jessegavin 2011-03-30 20:30:41
我覺得你有一些頁面的股利和鏈接如下:
<div id="myDiv">
<a href="Link Url">Link Text</a>
<!--some other elements-->
</div>
你需要創建像波紋管一個js文件,並添加它結束所有網頁的:
var div = document.getElementById("myDiv");
if (div) {
for (var i = 0; i < div.childNodes.length; i++)
{
if (div.childNodes[i].nodeName.toLowerCase() == "a")
div.childNodes[i].target = "_blank";
}
}
你需要做的所有事情!這個代碼速度不夠快,甚至不需要JQuery。
@Neal,通常我會同意你的看法,但是代碼不會告訴我們任何超過golf_nut口頭描述的東西。這是一個寫得很好的問題。 – jessegavin 2011-03-30 20:31:49