使用Safari(iOS 10.2)并点击mailto链接时,会显示确认提示,并显示以下消息:
“此网站已被阻止自动撰写电子邮件。” 忽略/允许
我想在我自己的网站上摆脱这个,不知道该怎么做。它可以通过Safari重现,例如在点击邮件图标的任何BBC文章中。
Screenshot of dialogue on iPad
我的网络研究带我到这些链接:
https://discussions.apple.com/thread/7763735
WillieFromColo 2017年1月11日上午8:25回应Russ G
Safari的问题和“此网站已被阻止 自动撰写电子邮件。“
我对Google的研究表明此错误类型消息已启动 大约在11月份发生了对Safari的更新,很可能 与Apple对iOS 10.2的更新同时发生。截至今日 (1/11/17)这是适用于iPad的iOS的最新版本 iPhone也是。
[...]
和
https://developer.apple.com/safari/technology-preview/release-notes/#r15
第15版 网址处理
导航到tel:和mailto:链接现在需要用户手势; 没有用户手势的导航将显示确认提示
所以它看起来像Safari“功能”。有谁知道如何阻止这个提示?
答案 0 :(得分:5)
各种第三方JavaScript库将拦截a
属性的点击,以防止在向服务器发送数据时短暂导航。通常,他们以编程方式通过window.location.replace
触发导航。
当以这种方式触发mailto / tel链接时,Safari中的更改会弹出警告。
是一种互动,但这通常是preventDefault
停止的,Safari并不关心。
如果您使用导致此问题的库,请与创建者联系,看看他们是否可以更新它以跳过mailto / tel链接上的preventDefault
。
答案 1 :(得分:2)
我最初没有提到的是我们从out page的JavaScript部分调用了mailto。我们现在再次尝试通过更改为基于HTML标签的mailto(使用to和subject)来解决问题,现在它在某种程度上无需拨号即可工作。 所以我认为这个问题已经解决了,但我对任何解释原因的提示持开放态度。因此,我现在不将此答案标记为解决方案。
答案 2 :(得分:0)
发生了使用,因为我们使用window.open(...)
在新窗口中打开该链接。
仅为Safari取代window.location.href = ...
:facepalm:。
答案 3 :(得分:0)
我们遇到了类似的问题-并且已确定该问题是通过Google跟踪代码管理器触发的。
具体来说,我们在包含mask = (df['Attribute:Value'].str.extract(':(\d+)', expand=False).astype(int).gt(3) |
df['Support'].gt(4))
前缀的所有df1 = df[mask]
print (df1)
Attribute:Value Support
0 VDM:1 9
3 VDM:4 0
4 VDM:5 1
6 MDM:2 6
8 MDM:4 3
9 MDM:5 1
11 OM:2 6
13 OM:4 3
14 OM:5 1
元素上触发了事件(在标记管理器中)。
我们更改了要通过单击锚标记内嵌套的const resolvers = {
Query: {
async getStudent (root, { id }, { models }) {
return models.User.findByPk(id)
},
},
Mutation: {
async createUser (root, { name, email }, { models }) {
return models.User.create({
name,
email
})
},
},
}
元素来触发的事件。
这既允许在跟踪代码管理器中跟踪事件,也可以删除有问题的用户提示。 例如。
const { gql } = require('apollo-server-express');
const typeDefs = gql`
type User {
id: Int!
name: String!
email: String!
}
type Query {
getUser(id: Int!): User
getAllUsers: [User!]!
}
type Mutation {
createUser(name: String!, email: String!): User!
}`
module.exports = typeDefs;
答案 4 :(得分:0)
当使用 Google跟踪代码管理器跟踪邮件链接时,我们遇到了这个问题。
我找到了无需修改dom的解决方案。
我们已使用选项“ 等待标签”和“ 最长等待时间”为2000毫秒激活了触发类型“点击-只是链接”。
禁用此选项后,该消息不再出现。 另一个解决方案是使用“点击-所有元素”(这始终有效)。
答案 5 :(得分:0)
此处的解决方案均无效。有一个插件/脚本将自身附加到引起该行为的click事件上。我最终使用jquery与jQuery创建mailto:
链接。
以这种方式添加html电子邮件
<span class="email-link">email@email.com</span>
并添加此jquery以将<span>
转换为链接
$(function() {
$( ".email-link" ).each(function( index ) {
var a = $('<a />');
var link = $( this ).text();
a.attr('href', 'mailto:' + link );
a.text(link);
$( this ).html(a);
});
});
这样,您可以避免将任何外部脚本附加到mailto链接单击事件。