从 *any* URL 的 aspx 页面打开新窗口
Posted
技术标签:
【中文标题】从 *any* URL 的 aspx 页面打开新窗口【英文标题】:Open New Window from aspx page from *any* URL 【发布时间】:2010-10-23 05:56:56 【问题描述】:是否有任何方法可以配置 IIS 或 Web 应用程序以在单击超链接时自动打开新窗口?我的问题并不像听起来那么简单,让我解释一下……我知道您可以在锚标记中使用 javascript 或 target="_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 将处理设置到客户端非常棒!我猜您可以创建一个捕获 ReleaseRequestState 事件的 HTTP 模块。然后您将过滤器附加到您的 HttpResponse。过滤器可以搜索<a>
标签并将target='_blank'
添加到那些还没有它们的标签中。
【讨论】:
好主意,向服务器添加处理,但很高兴看到第三种方法来完成它,感谢所有的复制人,你们都摇滚!!以上是关于从 *any* URL 的 aspx 页面打开新窗口的主要内容,如果未能解决你的问题,请参考以下文章