从 *any* URL 的 aspx 页面打开新窗口

Posted

技术标签:

【中文标题】从 *any* URL 的 aspx 页面打开新窗口【英文标题】:Open New Window from aspx page from *any* URL 【发布时间】:2010-10-23 05:56:56 【问题描述】:

是否有任何方法可以配置 IIS 或 Web 应用程序以在单击超链接时自动打开新窗口?我的问题并不像听起来那么简单,让我解释一下……我知道您可以在锚标记中使用 javascripttarget="_blank",但我并不总是知道何时可能会在页面上列出锚标记。 ..

原因是它是一个用户论坛,想想堆栈溢出;)用户可能会输入一个 URL(允许),但不一定知道,或者它是在很久以前输入的,无法分辨。

我很确定答案是否定的,我只需要在保存帖子/条目时分析 URL,然后将其转换为执行此操作。

【问题讨论】:

或者我想我可以分析写入页面的 html 内容以获取 URL,然后添加适当的代码......嗯......必须有人已经尝试过并发现了一些漂亮的模式来解决这个问题。 【参考方案1】:
<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,知道基本标签,但不知道可以添加目标属性。不错。 酷。我非常了解我在页面上以编程方式创建的所有链接(即 urlrewriting 等),因此我可以轻松地将 target="_self" 标记添加到这些链接中!感谢您提供一个简单的解决方案 - 甚至完全没有考虑 HTML 有答案,哈哈。【参考方案2】:

IIS 与它没有任何关系 - 没有编写一个过滤器来重写所有链接。我建议使用 JQuery,它应该像这样简单:

$(function() 
    $('A').attr('target', '_blank');
);

【讨论】:

很好的解决方案!通过 javascript 将处理设置到客户端非常棒!我猜 标签也是这样做的。【参考方案3】:

您可以创建一个捕获 ReleaseRequestState 事件的 HTTP 模块。然后您将过滤器附加到您的 HttpResponse。过滤器可以搜索&lt;a&gt; 标签并将target='_blank' 添加到那些还没有它们的标签中。

【讨论】:

好主意,向服务器添加处理,但很高兴看到第三种方法来完成它,感谢所有的复制人,你们都摇滚!!

以上是关于从 *any* URL 的 aspx 页面打开新窗口的主要内容,如果未能解决你的问题,请参考以下文章

字符串函数(regex?)从url字符串中删除查询字符串对

用js在不同页面之间传递参数。急急急急急急急急!!!!!

c#中,如何实现一个按钮控制另一个窗口的打开和关闭,即点击一下,新窗口打开,再点击一下,打开的新窗

使用 Excel VBA 从 aspx 页面表中检索数据

如何从 API 发送 aspx 页面作为响应?

如何在aspx页面中为href生成url