3

我有一个名为“电子邮件选定成员”的 Django 管理操作。检查一些成员并单击 Go 按钮,打开用户的邮件程序。所选成员的电子邮件已预先输入。

这由 Django HttpResponseRedirect(uri) 工作,uri 为“mailto:email1,email2.. 其中地址 email1,email2 ...在服务器上查找。

唯一的问题是浏览器重定向到空白页面以及打开客户端邮件程序。

有没有办法避免这种情况?

——彼得

4

3 回答 3

4

这个问题有点老了,但我刚刚经历了这个,我想我可以帮助任何人在未来寻找答案。

我遇到了这个问题,因为我正在构建的网站有一个内置的跟踪系统,可以跟踪自托管广告的出站链接的 URL。如果我不重定向,就没有办法(不改变它的实现方式)来跟踪点击,因为我没有使用 API 或任何东西。

简单的解决方法是做你所做的,发回HttpResponse()其内容是元标记

<meta http-equiv="refresh" content="0;url=mailto:youremail@test.com" />

这会导致页面在加载时刷新,从而触发mailto:操作。

现在我们只剩下一个打开的窗口,但我们不能使用 Javascript 的window.close()方法关闭窗口。但是,我确实相信这个解决方案应该有效。刷新成功后调用该 Javascript 函数。

不幸的是,我没有对此进行测试,但这两种方法应该完成一个mailto:不会留下空白窗口/选项卡的重定向。

希望这可以帮助!

于 2014-09-03T22:39:43.233 回答
1

不要使用 HttpResponseRedirect。只需将 mailto: 设为链接即可。<a href="mailto:email1...">Email selected members</a>

于 2010-10-18T15:30:43.523 回答
0

我不认为这是可能的。RFC 2616 说重新 302 重定向:

临时 URI 应该由响应中的 Location 字段给出。除非请求方法是 HEAD,否则响应的实体应该包含一个简短的超文本注释,其中包含指向新 URI 的超链接

所以我看到的空白页是(非常)简短的超文本注释。浏览器获取重定向指令,弹出一个带有重定向消息的临时页面,然后检索重定向的 URL。但是使用 mailto: URL,临时页面显然仍然存在。

于 2010-10-19T14:54:58.710 回答