选择文本时,如果等于与ID相同的值,则运行功能

时间:2017-04-15 18:40:32

标签: javascript

我试图设置此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文档中的任何其他文本。

1 个答案:

答案 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;
&#13;
&#13;