我有一个拼图网站,这是一种可怕的作弊方式。它只是部分可以,但可以吗? 我想到的是用图像替换字母,但比这更容易吗?
答案 0 :(得分:71)
<强>代码强>
window.addEventListener("keydown",function (e) {
if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)) {
e.preventDefault();
}
})
答案 1 :(得分:18)
不是禁用“查找”功能,而是可以使“查找”找不到单词!一种方法是使用CSS content
声明来注入单词。找不到它们:
<div class="word-foobar"></div>
.word-foobar:before {
content: "Foobar";
}
您也可以轻松编写一些Javascript来自动生成所有必要的CSS规则。
答案 2 :(得分:7)
您可以在大多数浏览器(IE9,Firefox,Chrome,Opera)中禁用键盘快捷键,但不能通过在浏览器中单击它来阻止某人使用“查找”。
以下是一些支持jQuery的JavaScript:
$(window).keydown(function(e){
if ((e.ctrlKey || e.metaKey) && e.keyCode === 70) {
e.preventDefault();
}
});
取自http://caniuse.com/,此功能经常让我恼火。在该网站上,它用于使CTRL + F在页面上进行自定义搜索,而不是完全禁用它。
答案 3 :(得分:4)
我认为没有办法完全禁用该功能,并且应该不能禁用它。
然而你可以确保 Ctrl + F 找不到某些文字,因为它写的是浏览器没有考虑连续文本。
使用图像是一种相对简单的方法。
或者你可以随机化这些字母并用一些CSS魔法重新排列它们(不幸的是,我的CSS-fu太弱了,不能给出一个例子)。例如,如果你想“隐藏”单词“hello”,那么用单独的<div>
中的每个字母写出“lehol”并应用一些CSS样式,以便视觉上字母的顺序正确。 / p>
请注意,这个(以及可能所有其他工作解决方案)也打破文本的复制和粘贴。
答案 4 :(得分:3)
这是一个jQuery plugin,可以满足您的需求。
答案 5 :(得分:2)
我认为使用keydown可以实现这一点,但是从原则上讲,改变浏览器的行为方式是一个坏主意。虽然这对你来说更加痛苦,但是有一些字体替换技术可以让它变得更容易。
如果你确实找到了这样做的方法,那么总会有人有可能绕过它。除了浏览浏览器之外,将页面编写成工作要好得多。
答案 6 :(得分:1)
你可以用javascript做 - 这只是伪代码(用jQuery编写)因为我不确定如何同时监听ctrl和f,但是你明白了:
$(body).keypress(function(e)
{
if (e.keyCode===17)
{
//ctrl has been pressed, listen for subsequent F press (keyCode 70)
//if next keyCode===70
return false;
}
});
据我所知,像这样返回false会在按下按键时停止浏览器执行任何操作。如果e.preventDefault();
不够,您也可以使用return false;
来防止发生任何事情。
希望这有帮助
答案 7 :(得分:0)
没有。更换图像是最快速,最安全的方式。 (除非您愿意切换到Flash / Java Applet等)。
答案 8 :(得分:0)
为什么不使用Shadow DOM?这将允许搜索引擎或屏幕阅读器无法访问您的内容。并且具有为用户提供完全相同的行为的额外好处。
请点击此处了解详情:Introduction to Shadow DOM