【问题标题】:How to if h1 text == this then this happens [duplicate]如果 h1 text == this 那么会发生这种情况[重复]
【发布时间】:2021-06-12 19:56:36
【问题描述】:

所以我制作了这个 IP 脚本,当您访问我的网站时,它会显示您的 IP。

我想做的是做一个简单的 IP 拦截器,我希望它找到包含 IP 地址作为文本的标头的值,并使其成为 if IPHEADER.text or something == "GOODIP" alert("RIGHT IP!"); else window.location = "SOMETHING" ...我知道那是糟糕的 JavaScript ,但这只是一个例子。

这是我当前的代码。

<h3 id="testIp"></h3>

<script>
  function text(url) {
    return fetch(url).then(res => res.text());
  }

  text('https://www.cloudflare.com/cdn-cgi/trace').then(data => {
    let ipRegex = /[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/
    let ip = data.match(ipRegex)[0];
    document.getElementById('testIp').innerHTML = (ip);
  });
-->NEED HELP PAST HERE<---
  function validate() {
    if (document.getElementById("testIp").innerHTML == "The Right IP") {
      alert("RIGHT IP!");
    } else {
      alert('WRONG IP!');
    }
  }

</script>

谢谢!

【问题讨论】:

  • 如果您想比较原始文本,为什么不尝试.textContent 而不是.innerHTML
  • 我的代码没有任何错误,只是它不工作。
  • if ... 部分放入then 回调中。在时间方面,它只保证该值在那里可用。或者通过参数传递值:function validate(ip) ...,并在.then中调用它:validate(ip)
  • 这不回答,也不适用于我的代码。对不起

标签: javascript html ip


【解决方案1】:

您可以更改一些内容来更正您的代码。

  1. 转义正则表达式中的点文字 (\.)
  2. 使用.textContent 仅从&lt;h3&gt; 中提取原始文本。
  3. 比较两个文本字符串时,始终使用三等号 (===)

const
  PATTERN_IP_ADDRESS = /[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/,
  blockedIpAddress   = '127.0.0.1';

const fetchText = url => fetch(url).then(res => res.text());

const validate = () => {
  const testIp = document.getElementById('testIp');
  const ipAddress = testIp.textContent;

  if (ipAddress === blockedIpAddress) {
    console.log('RIGHT IP!');
  } else {
    console.log('WRONG IP!');
    testIp.classList.add('wrong');
  }
}

fetchText('https://www.cloudflare.com/cdn-cgi/trace').then(text => {
  const [ ip ] = text.match(PATTERN_IP_ADDRESS);
  document.getElementById('testIp').innerHTML = ip;
  validate();
});
.wrong { color: red; }
&lt;h3 id="testIp"&gt;&lt;/h3&gt;

【讨论】:

  • 非常感谢,现在我可以在不使用 PHP 或 .htaccess 的情况下制作 IP 拦截器! ...不知道为什么这有负面的代表,但无论如何。
猜你喜欢
  • 2017-08-07
  • 1970-01-01
  • 1970-01-01
  • 2021-01-24
  • 1970-01-01
  • 1970-01-01
  • 2021-04-30
  • 2010-09-22
  • 1970-01-01
相关资源
最近更新 更多