我试图设置此Javascript: How to detect if a word is highlighted的变体,但我希望仅当所选文本与所选文本的值匹配时才运行 getSelectedText 函数 h1 id
我设置的代码如下:
Files.walk(dirChooser.getCurrentDirectory().toPath())
.filter(file -> Pattern.matches(".*password.*|.*user.*|.*profile.*", file.getFileName().toString()) && accept(file))
.forEach(System.out::println);
我在 if 循环中包含警告('嘿'),看看它是否正在运行,仅用于测试,但没有证据表明它在我的测试中,也没有在控制台中看到任何错误。整个代码位于http://codepen.io/malditojavi/pen/LWmRvp?editors=1010
在这种情况下,只有在完整字符串“产品名称”的情况下才能运行该功能。选中,而不是HTML文档中的任何其他文本。
答案 0 :(得分:1)
您的if
应该是:
if (window.getSelection().toString() === x.textContent) {
但似乎你的函数只能返回一个布尔值,表明预期的文本是否匹配。正如您在这种情况下已经知道的那样,只需返回true或false即可。我建议写这个:
function isSelectedText(txt) {
return window.getSelection().toString().trim() === txt;
}
function doSomethingWhenTextSelected() {
if (isSelectedText(document.getElementById("titleProduct").textContent)) {
document.getElementById("hiddenCTA").className = "visibleCTA";
}
}
document.onmouseup = doSomethingWhenTextSelected;

.hiddenCTA { display: none }
.visibleCTA { display: block }

<h3 id="titleProduct">Title Of Your Product</h3>
hhhh
<div class="hiddenCTA" id="hiddenCTA">Hey, we do price match!</div>
&#13;