1
geelaw 2018-09-11 03:44:27 +08:00
没有,这是 user agent 自行决定的。
Edge 的做法是:若用户处于高对比度模式,则采用高对比度主题的颜色方案,否则采用 黑色字+黄色背景(即使页面背景已经是黄色,即使文字色已经是黑色)。 |
2
casparchen 2018-09-11 05:32:01 +08:00 1
非前端,但是简单搜索了一下,貌似可以设置 keypress,监听 Ctrl + F, 然后自己实现一个搜索功能并替换背景颜色吧?
|
3
per 2018-09-11 08:29:40 +08:00 via iPhone
2 楼的想法还算是靠谱的,接触一下事件用自己的搜索框
|
5
bojackhorseman 2018-09-11 09:26:29 +08:00
看来是 PM 提出了奇怪的需求
|
6
geelaw 2018-09-11 09:53:42 +08:00
@casparchen #2 这是不可能的。我写了一个例子 http://codepad.org/8fMDMr4Q
无论是 Chrome 还是 Edge 都无法用这段代码正确代替浏览器的 Ctrl+F,如下现象: 1. 虽然 JS 能够发现 Ctrl+F,但是浏览器搜索框仍然会弹出。 2. 这段代码并不能正确检查 Ctrl/Alt/Shift/Windows 的状态。如果你按住其中一个键并用鼠标或者其他方式取消 window 的焦点,则代码将以为那个键仍然按下。 例如当你按 Ctrl+F 时,焦点转移到浏览器的搜索框,松开 Ctrl、关闭搜索框之后,再次按 F,代码会以为你按了 Ctrl+F。 此外,即使你通过截获 Ctrl+F 替换了浏览器的搜索框,你也无法保证: 1. 这个浏览器用 Ctrl+F 而不是别的热键激活搜索框(提示:Edge 可以用“查找下一个”也就是 F3 激活搜索框) 2. 用户真的会用 Ctrl+F 激活搜索框,而不是通过其他方式(提示:Edge 可以用 … | Find on page 激活搜索框) 答案:不要尝试干扰前端能够做的之外的事情。 |
7
RingoTC 2018-09-11 11:37:27 +08:00
不知道是在什么情况下提出的这个需求。
如果是需要为各网站提供一个跨浏览器的通用的搜索功能扩展,可以通过制作浏览器插件的方式去实现这个效果。 通过浏览器对插件开放的 API 可以实现。( example:tampermonkey 的代码编辑页面) 如果是要求使用通用的浏览器接口,应该是不能做到这样的效果。 |