iOS 11 Safari HTML - 禁用“智能标点符号”?

2023-11-24

有没有好的方法来禁用“SmartiOS 11 Apple 键盘生成的标点符号 - 在 Safari 中的 HTML 登录表单上 - 特别是用户名字段?

问题是我们的用户名中含有撇号。在 iOS 11 上输入用户名并且不了解 unicode 的微妙之处,他们将无法登录。

理想情况下,我们可以指示此类用户禁用智能引号或通过按住撇号键键入正确的字符 - 但我正在为小孩子开发教育软件,这是不可能的。

由于只有一小部分用户具有实际的能力,这一事实使问题变得更加复杂。弯单引号在他们的用户名中,因此简单的替换映射不起作用 - 而且我们无法规范化用户名,因为它们来自我们无法控制/无法拥有太多发言权的许多外部系统。


不幸的是根据这个 MDN 页面没有已知的 Webkit<input> or <textarea>属性来禁用智能引号,但您可以使用我编写的源自此 QA 的脚本对其进行修补:如何禁用浏览器中文本区域字段的智能引号?

window.addEventListener('DOMContentLoaded', attachFilterToInputs );

function attachFilterToInputs() {

    var textInputs = document.querySelectorAll( 'input[type=text], input[type=password], input[type=email], input[type=search], input[type=url], textarea, *[contenteditable=true]' );
    for( var i = 0; i < textInputs.length; i++ ) {
        textInputs[i].addEventListener( 'keypress', preventPretentiousPunctuation );
    } 
}

var conversionMap = createConversionMap();

function createConversionMap() {

    var map = {};
    // Open-quotes: http://www.fileformat.info/info/unicode/category/Pi/list.htm
    map[ 0x2018 ] = '\'';
    map[ 0x201B ] = '\'';
    map[ 0x201C ] = '"';
    map[ 0x201F ] = '"';

    // Close-quotes: http://www.fileformat.info/info/unicode/category/Pf/list.htm
    map[ 0x2019 ] = '\'';
    map[ 0x201D ] = '\"';

    // Primes: http://www.fileformat.info/info/unicode/category/Po/list.htm
    map[ 0x2032 ] = '\'';
    map[ 0x2033 ] = '"';
    map[ 0x2035 ] = '\'';
    map[ 0x2036 ] = '"';

    map[ 0x2014 ] = '-'; // iOS 11 also replaces dashes with em-dash
    map[ 0x2013 ] = '-'; // and "--" with en-dash

    return map;
}

function preventPretentiousPunctuation( event ) {

    if( event.key.length != 1 ) return;

    var code = event.key.codePointAt(0);
    var replacement = conversionMap[ code ];
    if( replacement ) {

        event.preventDefault();
        document.execCommand( 'insertText', 0, replacement );
    }
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 11 Safari HTML - 禁用“智能标点符号”? 的相关文章

  • GoogleMaps iOS SDK 1.5 无法加载

    所以我开始研究使用 GoogleMaps iOS SDK 我按照说明进行操作 在控制台中启用适用于 iOS 的 Google Maps SDK 设置 API 密钥并添加捆绑 ID 我使用演示项目 Google Supplies 更新了常量
  • iOS、Swift 3 - 当我从详细视图返回后单击“取消”时,UISearchBar 消失

    我在containerView中有一个tableView 以编程方式向其添加一个搜索栏 一切工作正常 除了这种情况 当我点击一个单元格时 当 tableView 由 searchBar 过滤时 然后我从明细视图返回 通过推送转场呈现 然后我
  • 如何在 Xcode 构建完成时设置警报?

    我是一名懒惰的 iOS 开发人员 在一个大型 iOS 项目中工作 我已经应用了许多优化来减少项目构建时间 但每次构建都需要超过 10 12 分钟 我开始构建 有时当构建完成时 我会在桌子上睡着 有没有什么方法可以将任何语音 铃声警报与 xc
  • 从音频流获取元数据

    我想从我正在使用 AVQueuePlayer 播放的 AVPlayerItem 中的流 URL 获取文件名和专辑图像 如果可能 但我不知道如何执行此操作 另外 如果我的流媒体 URL 没有任何元数据 我可以将元数据放入我的流媒体 URL 中
  • 核心音频:与扬声器一起使用,是否可以路由到内部扬声器 - AVAudioSessionPortBuiltInReceiver(不路由到扬声器)

    根据文档 没有关于路由甚至获取 AVAudioSession PortBuiltI Receiver 的端口详细信息的文档 注 请再读一遍 与此端口无关AVAudioSessionPortBuiltInSpeaker 正如我发现的那样并且唯
  • CoreData 获取属性的不同值

    我正在尝试设置我的NSFetchRequest核心数据以检索实体中特定属性的唯一值 IE 具有以下信息的实体 name rate factor John 3 2 4 Betty 5 5 7 Betty 2 1 2 Betty 3 1 2 E
  • 如何与Socket.io连接?雨燕4

    我已阅读最新文档 https github com socketio socket io client swift of Socket io对于斯威夫特 还有一个新连接的示例 let manager SocketManager socket
  • iPhone 5 - 新图像必须遵循什么命名约定?

    新 iPhone 5 必须加载新图像的命名约定是什么 我们看到设备必须加载 3 个默认图像 Default png email protected cdn cgi l email protection and email protected
  • 使用 NSOutputStream 通过套接字发送数据的正确方法

    我刚刚开始在 iOS 上进行套接字编程 我正在努力确定 的使用NSStreamEventHasSpaceAvailable活动为NSOutputStreams 一方面 苹果官方文档 清单2 https developer apple com
  • UICollectionView cellForItemAtIndexPath 未注册单元格

    我正在尝试使用UICollectionViewCell 因为我想显示的只是一张图像 我可以使用将图像添加到单元格中UIColor colorWithImage on the UICollectionViewCell s contentVie
  • 在 UIWebView 中使用自定义字体

    我想在 UIWebView 中显示自定义字体 我已经将字体放在 应用程序提供的字体 下的 plist 中 使用中的代码 UIWebView webView UIWebView alloc initWithFrame myRect NSURL
  • Xamarin-ios 共享和接收音频文件

    如何将我的应用程序中的音频文件共享给其他应用程序并从其他应用程序接收音频文件 I would like a functionality like this 我无法附加音频文件 这是代码片段 var fileData NSUrl FromFi
  • Objective-C中如何使用后台线程?

    我试图在按下按钮时运行 while 循环 但无法按下按钮 因为 while 循环会阻塞 UI 是否有一个后台线程 我可以在其中运行 while 循环并推送UIButton 就个人而言 我会在 UI 顶部运行 HUD 活动指示器 然后在后台运
  • 尝试将应用程序提交到应用程序商店时出现通信错误

    我有 Xcode 5 我尝试验证我的应用程序 但发现了这些通信错误 通信故障 请使用诊断模式检查连接性 您需要具有对 TCP 端口 443 的出站访问权限 发生异常 握手期间远程主机关闭连接 调用服务方法时出错 authicateForTr
  • 不使用 ARC 时替换 __weak

    我有这行代码 weak NSBlockOperation weakOperation operation 这是触发此编译器错误 weak attribute cannot be specified on automatic variable
  • 循环遍历 NSMutableDictionary

    如何循环遍历 NSMutableDictionary 中的所有对象而不考虑键 标准方式如下所示 for id key in myDict id value myDict objectForKey key value doStuff
  • 如何触发应用程序通过 REST 服务获取数据?

    我正在寻找一种方法来触发应用程序从远程 REST 服务获取数据 该方法不需要轮询 iOS 推送通知似乎不是一个选项 因为它可以被用户停用 然而 我可能是错的 是否有最佳实践来完成此任务 实际上 推送通知是可行的方法 在 ios8 及更高版本
  • NSAutoreleasePool。什么时候适合创建新的自动释放池?

    在 iOS CocoaTouch 上 我经常看到在方法中创建 NSAutoreleasePool 新实例的代码 我最近在 NSOperation 中看到了一个 设置 NSAutoreleasePool 新实例的基本规则是什么 为什么这比简单
  • 如何在C(Linux utf8终端)中打印“盒子抽屉”Unicode字符?

    我正在尝试显示 方框图范围 2500 257F 中的 Unicode 字符 它应该是标准 utf8 Unicode 标准 版本 6 2 我根本做不到 我首先尝试使用旧的 ASCII 字符 但 Linux 终端以 utf8 显示 并且没有显示
  • 如何在 iOS 上创建图库

    我开始为 iOS 开发一个简单的应用程序 这个应用程序是一些照片的简单画廊 取自网站 我遇到的第一个问题是如何创建图库的视图 The view should be something like this or the Photo App 然

随机推荐

  • 方法签名中的“易失性”? [复制]

    这个问题在这里已经有答案了 这个很奇怪 我有以下代码 class A protected A clone throws CloneNotSupportedException return A super clone 当我通过 showmyc
  • Capybara、RSpec 和 Devise:有什么方法可以通过避免缓慢登录和直接设置会话来加快集成测试速度?

    对于几乎每个集成测试 用户都必须登录 Devise 这需要花费很多时间 所以我想知道是否有一种方法可以设置用户会话 而无需访问登录页面 输入详细信息 然后按登录按钮 也许 Devise 中内置了一个帮助程序方法 可以立即让给定用户登录 非常
  • 对 Django 声称的 MVC 感到困惑,它到底是什么?

    那么 Django 到底实现了什么 好像有 Models Views Templates 模型 数据库映射 视图 从以下位置获取相关数据 通过模板对其进行建模和格式化 模板 根据视图给出的数据显示 HTML 编辑 S Lott 在对上一篇文
  • Bash 脚本 cd 到路径名中包含空格的目录

    我在 macOS X 上使用 Bash 我想创建一个简单的可执行脚本文件 该文件在运行时会更改为另一个目录 但是 该目录的路径中有空格 你到底是怎么做到的 这就是我所拥有的 文件名称 cdcode 文件内容 cd My Code 现在 这不
  • C++:警告:“...”声明的可见性高于其字段“...::”的类型

    我收到这两个警告 在 MacOSX 上使用 GCC 4 2 Users az Programmierung openlierox build Xcode src main cpp 154 0 Users az Programmierung
  • 邮政编码(美国邮政编码)验证

    Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 我以为人们会一起开发小型代码项目 但我没有看到它们 所以这是一个简单的项目 验证有效美国邮政编码的代码 我知道有邮政编码数据库 但
  • 如何展平 Laravel 递归关系集合(树集合)?

    如何将具有层次结构自引用模型 树集合的集合展平为单个维度集合 我有一个有父母和孩子的自引用模型 我希望结果返回一个雄辩的集合 而不是一个简单的集合或数组 为了方便演示 已使用数组作为结果结果 关系是这样声明的 public function
  • 用于指南的 C# 正则表达式

    我需要解析字符串并在每个 Guid 值周围添加单引号 我想我可以使用正则表达式来做到这一点 但我不完全是正则表达式专家 是否有一个好的正则表达式可以用来识别 Guid 我的第二个问题是一旦我找到一个有效的正则表达式我假设我会使用Regex
  • 合并两个 pandas 数据框会导致“重复”列

    我正在尝试合并两个包含相同键列的数据框 其他一些列也具有相同的标题 尽管行数不相等 并且在合并后 这些列与原始标题 重复 并给出后记 x y 等 有谁知道如何让 pandas 删除下面示例中的重复列 这是我的Python代码 import
  • PHP DOMDocument 将节点从一个文档移动到另一个文档

    好吧 我已经尝试了几个小时来实现这一目标 但似乎找不到解决方案 所以我在这里 我有 2 个 DOMDocument 我想将一个文档的节点移动到另一个文档 我知道两个文档的结构 并且它们属于同一类型 所以合并它们应该没有问题 有人可以帮助我吗
  • Androidmanifest 和 build.gradle 中都有 minsdk 和 Targetsdk 吗?

    我刚刚将一个项目从 Eclipse 迁移到 Android Studio 这build gradle文件有一个部分包括 defaultConfig applicationId com example someone myapplicatio
  • 在 Plotly Python 中更改子图标题位置/方向

    我需要在 python 中更改子图标题 即将其旋转 90 度 我努力尝试但没有成功 这是我的代码 import plotly offline as pyo import plotly graph objs as go from plotly
  • 在 Actionscript 3 中将一个函数传递给另一个函数

    我有一个函数将数组作为参数传递给另一个函数 该数组中会有多种数据类型 但我想知道如何传递函数或对函数的引用 以便另一个函数可以随时调用它 ex 功能A add new Array hello some function 功能B public
  • 这是单一责任原则的一个例子吗?

    我制作了以下代码示例来学习如何使用泛型方法签名 为了得到一个Display 方法对于客户和员工 我实际上开始更换我的IPerson接口与人抽象类 但后来我停了下来 想起鲍勃叔叔在播客中向斯科特 汉塞尔曼讲述了单一责任原则其中你应该有很多小类
  • 元素节点和文本节点的区别

  • C# 4.0 WCF REST JSON - HTTP GET 代码 400 错误请求

    当尝试创建一个简单的服务以通过遵循几个教程返回简单的 JSON 字符串时 我被困在两台不同的机器上 并收到 HTTP Statuscode 400 错误请求 示例教程 使用 JSON 的 RESTful WCF 服务 pt 1 和 pt 2
  • 使用 sed 在主机文件的行尾添加地址

    我的主机文件中有一个特定行用于本地 Wordpress Multisite 安装 如下所示 127 0 0 1 localhost domain dev site1 domain dev site2 domain dev 我正在编写一个 S
  • PHP 字母循环

    为什么这不起作用 请告诉我 您的代码中有两个问题 首先 单引号字符串 的行为与双引号字符串 当使用单引号字符串时 转义序列 除了 and 不被解释并且变量不被消耗 这可以这样修复 删除引号 或将它们更改为双引号 string hey for
  • 基于索引掩码 numpy 数组

    如何根据实际索引值屏蔽数组 也就是说 如果我有一个 10 x 10 x 30 矩阵 并且我想在第一个和第二个索引彼此相等时屏蔽该数组 例如 1 1 应该被屏蔽 因为 1 和 1 彼此相等 但是 1 2 不应该 因为他们不这样做 我只用三维来
  • iOS 11 Safari HTML - 禁用“智能标点符号”?

    有没有好的方法来禁用 SmartiOS 11 Apple 键盘生成的标点符号 在 Safari 中的 HTML 登录表单上 特别是用户名字段 问题是我们的用户名中含有撇号 在 iOS 11 上输入用户名并且不了解 unicode 的微妙之处