Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以将文本标记为不可搜索?_Javascript_Html - Fatal编程技术网

Javascript 是否可以将文本标记为不可搜索?

Javascript 是否可以将文本标记为不可搜索?,javascript,html,Javascript,Html,我有时会在网站上看到无法搜索的文本(例如,当我有一个很长的列表时,用户可以对每个元素应用一些操作。他可能会搜索列表中的一个元素,但也会“找到”这些操作)。因此,当用户按下Ctrl+f并输入相同的文本时,他不应该得到这些结果 不使用图像就可以吗 (我很关心谷歌最新的Chrome版本)我怀疑这是可能的。您必须更改搜索字段的行为,您当然无权访问该字段 解决方法可能是在站点上实现您自己的搜索框,该搜索框能够从列表中排除条目(例如,在这些元素上使用自定义类或属性).编辑:完全更新此选项,以自动将CSS:b

我有时会在网站上看到无法搜索的文本(例如,当我有一个很长的列表时,用户可以对每个元素应用一些操作。他可能会搜索列表中的一个元素,但也会“找到”这些操作)。因此,当用户按下Ctrl+f并输入相同的文本时,他不应该得到这些结果

不使用图像就可以吗


(我很关心谷歌最新的Chrome版本)

我怀疑这是可能的。您必须更改搜索字段的行为,您当然无权访问该字段


解决方法可能是在站点上实现您自己的搜索框,该搜索框能够从列表中排除条目(例如,在这些元素上使用自定义类或属性).

编辑:完全更新此选项,以自动将CSS
:before
语句插入到新样式表中,使文本完全不可编辑。现在唯一的问题是,文本也不再是可选择的

(函数(){
功能完整路径(el){
//完整路径从http://stackoverflow.com/a/4588211/382456
变量名称=[];
while(el.parentNode){
如果(标高id){
name.unshift(“#”+el.id);
打破
}否则{
if(el==el.ownerDocument.documentElement)names.unshift(el.tagName);
否则{
for(var c=1,e=el;e.previousElementSibling;e=e.previousElementSibling,c++);
names.unshift(el.tagName+”:第n个子(“+c+”);
}
el=el.parentNode;
}
}
返回名称。join(“>”);
}
函数addCSSRule(工作表、选择器、规则、索引){
//从中添加CSSRulehttp://davidwalsh.name/add-rules-stylesheets
if(工作表中的“insertRule”)sheet.insertRule(选择器+“{”+规则+“}”,索引);
else if(表中的“addRule”)sheet.addRule(选择器、规则、索引);
}
var nofinds=document.getElementsByClassName(“找不到”);
[]forEach.call(nofinds,function(el){
var选择器=全路径(el);
var style=document.createElement(“样式”);
style.appendChild(document.createTextNode(“”);
document.head.appendChild(样式);
var stylesheet=document.styleSheets[document.styleSheets.length-1];
var content=el.textContent;
var fontSize=window.getComputedStyle(el)[“字体大小”];
addCSSRule(样式表,选择器+”:在“字体大小:+fontSize+”之前,“内容:\”“+content+”\);
addCSSRule(样式表,选择器,“字体大小:0”);
});
})();
test1
测试2

test3 test4
这里的第一个答案有些关联:

与其禁用Find函数,还可以使Find无法找到单词!一种方法是使用CSS内容声明来注入单词。“查找”不会找到它们:

您必须考虑单词的每个实例,并输出“已翻译”单词(如中所示,而不是“myword”,输出“
”)


然后,您可以使用JavaScript将适当的css添加到div.replaceword的每个实例中,并根据数据属性添加适当的css。

至少在Firefox上,您可以使用
::after
选择器添加不可搜索(或可选择)的文本


p::在{
内容:“-找不到我”;
}
我叫唐纳德

我住在达克斯堡


从这里开始:

希望不会。有些人可能会以你不应该在意的方式使用搜索。如果您需要特定于站点的搜索功能,请实现搜索。请让我正确理解这一点,您有一个项目列表。每一个都是一个链接或其上都有一个表单,您是否试图阻止人们搜索页面并阻止他们使用链接/表单?如果这就是问题所在,也许重新设计页面是一个更好的解决方案。@DaveNewton您的评论让我想起和。对于这个特定的问题,我是我网站的主要用户。实现页面搜索比应用标签/包括一些通用JS(如果可能的话)的开销要大得多@MasterScrat,OP只关心最新的Chrome版本。@putvande他说他“男性”关心Chrome,但也许他(女性?)同样关心Firefox,我正在尝试其他一些事情——尝试制作一个Javascript插件来自动插入文本,作为
:在
内容之前插入,但还没有成功。
<!DOCTYPE html>
<html>
<head>
<style>
p::after { 
    content: " - Can't find me";
}
</style>
</head>
<body>

<p>My name is Donald</p>
<p>I live in Ducksburg</p>

</body>
</html>