Javascript 选中文本后,如果与ID的值相同,则运行函数
我正在尝试设置一个变体,但我只想在所选文本与h1 id的值匹配时运行函数getSelectedText 我设置的代码如下所示:Javascript 选中文本后,如果与ID的值相同,则运行函数,javascript,Javascript,我正在尝试设置一个变体,但我只想在所选文本与h1 id的值匹配时运行函数getSelectedText 我设置的代码如下所示: function getSelectedText() { var x = document.getElementById("titleProduct"); var text = ""; if (typeof window.getSelection === x) { alert('hey');
function getSelectedText() {
var x = document.getElementById("titleProduct");
var text = "";
if (typeof window.getSelection === x) {
alert('hey');
text = window.getSelection().toString();
}
return text;
}
function doSomethingWithSelectedText() {
var selectedText = getSelectedText();
if (selectedText) {
document.getElementById("hiddenCTA").className = "visibleCTA";
}
}
var x = document.getElementById("titleProduct");
document.onmouseup = doSomethingWithSelectedText;
我在if循环中加入了警告“hey”,以查看它是否正在运行,只是为了测试,但在我的测试中没有证据表明它在运行,在控制台中也看不到任何错误。整个代码都在里面
在这种情况下,仅当选择了完整字符串“产品标题”时,函数才应运行,而不是HTML文档中的任何其他文本。您的if应为:
if (window.getSelection().toString() === x.textContent) {
但是,您的函数似乎只能返回一个布尔值,指示预期文本是否匹配。正如您已经知道的那样,在这种情况下,返回true或false就足够了。以下是我建议如何写它:
函数为SelectedTextTXT{
return window.getSelection.toString.trim==txt;
}
函数doSomethingWhenTextSelected{
如果选择了TextDocument.getElementByIdtitleProduct.textContent{
document.getElementByIdhiddenCTA.className=visibleCTA;
}
}
document.onmouseup=dosomethingwhentext选中;
.hiddenCTA{display:none}
.visibleCTA{display:block}
产品名称
啊
嘿,我们做价格匹配!