2009-05-01 53 views
2

有什麼方法可以配置IIS或Web應用程序在單擊超級鏈接時自動打開新窗口?我的問題並不像聽起來那麼簡單,讓我解釋一下......我知道你可以在錨標記中使用javascript或target =「_ blank」,但我並不總是知道什麼時候錨標記可能會列在頁...從*任何* URL的aspx頁面打開新窗口

原因是,它的用戶論壇,想到堆棧溢出;)用戶可能輸入一個URL(允許),它不一定是已知的,或它是在以前進入,並且沒有辦法告訴。

我敢肯定,答案是否定的,我只需要在保存帖子/條目時分析網址,然後將其轉換爲這樣做......任何提示都將被讚賞!

+0

或者,我想我可以分析HTML內容被寫入頁的URL,然後添加適當的代碼...嗯...有必須是已經嘗試過的人,並發現了一些漂亮的模式來解決這個問題。 – bbqchickenrobot 2009-05-01 22:23:56

回答

10
<html> 
<head> 
<base target='_blank'> <!-- Here's the interesting bit --> 
</head> 
<body> 
<p><a href='http://google.com'>New window!</a></p> 
</body> 
</html> 

當然,真正會做所有鏈接 - 如果你想有一個鏈接是一個例外,並在當前窗口中打開,這樣做:

<p><a href='http://google.com' target='_self'>Not new window!</a></p> 
+1

+! - 不知道基本標籤。 http://www.w3schools.com/TAGS/tag_base.asp – 2009-05-01 22:26:20

+1

+1,瞭解基本標籤,但從來不知道您可以添加目標屬性。尼斯。 – 2009-05-01 22:28:02

+0

很酷。我非常瞭解我在頁面上以編程方式創建的所有鏈接(即urlrewriting等),因此我可以輕鬆地將target =「_ self」標記添加到這些標記中!感謝一個簡單的解決方案 - 完全沒有考慮HTML有答案大聲笑。 – bbqchickenrobot 2009-05-05 01:15:54

1

你可以創建一個捕獲ReleaseRequestState事件的HTTP模塊。然後你會附加一個過濾器到你的HttpResponse。該過濾器可以搜索<a>標籤並將target='_blank'添加到那些尚不具有這些標籤的標籤。

4

IIS與它沒有任何關係 - 編寫一個可以重寫所有鏈接的過濾器。我建議JQuery的,在那裏,它應該是一樣容易:

$(function() { 
    $('A').attr('target', '_blank'); 
}); 
相關問題