Javascript 选中文本后,如果与ID的值相同,则运行函数

Javascript 选中文本后,如果与ID的值相同,则运行函数,javascript,Javascript,我正在尝试设置一个变体,但我只想在所选文本与h1 id的值匹配时运行函数getSelectedText 我设置的代码如下所示: function getSelectedText() { var x = document.getElementById("titleProduct"); var text = ""; if (typeof window.getSelection === x) { alert('hey');

我正在尝试设置一个变体,但我只想在所选文本与h1 id的值匹配时运行函数getSelectedText

我设置的代码如下所示:

  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} 产品名称 啊 嘿,我们做价格匹配!