【问题标题】:How to add unremovable copyright text using Jquery?如何使用 Jquery 添加不可删除的版权文本?
【发布时间】:2023-01-03 01:01:26
【问题描述】:

很长一段时间我一直在寻找一件事。在页脚部分添加不可删除的版权 div/文本。如果有人删除或隐藏代码(使用显示:无;或可见性:隐藏;)或对代码进行任何更改,网页将重定向到另一个 URL。我之前在这里看到过这个问题,但是已经快完成了。 80% 是清楚的。但是缺少一些东西,这就是为什么它不能结合。这两个我都用过。这是代码。

这是第一个代码:

<script>
    btn.addEventListener('click', () => copyright.remove())
    btn1.addEventListener('click', () => copyright.style.display = "none")

    const observer = new IntersectionObserver((elems, obs) => {
      if(elems[0].intersectionRatio == 0) {
        console.log('elem hidden: redirect')
      }
    })
    observer.observe(copyright)
</script>

    <footer>
      <span id='copyright'> Copyright 2023 - Theme Title </span> | All Rights Reserved.
    </footer>
    
    <button id="btn">Remove copyright</button>
    <button id="btn1">Hide copyright</button>

这段代码很好,但问题是如果我删除版权 ID,它就不起作用了。我的意思是不重定向,除了点击按钮。不是正常的方式。

这是第二个:

<!DOCTYPE html>
<html lang="en">

<head>
  <link rel="stylesheet" href="/style.css">
  <title>Document</title>
</head>

<body>
  <footer>
    <div id="copyright">
      This is my copyright, do not change it!
    </div>
  </footer>
</body>

<script>
  let footer = document.querySelector('footer');
  let copyright = document.getElementById('copyright');
  let originalFooter = footer.innerHTML;
  let originalCopyrightStyle = String.toString(getComputedStyle(copyright));

  function checkFooter() {
    let currentFooter = footer.innerHTML;
    let currentCopyrightStyle = String.toString(getComputedStyle(copyright));

    if ((currentFooter !== originalFooter) ||
      (currentCopyrightStyle !== originalCopyrightStyle)) {
      location.href = `https://www.youtube.com/`;
    }
  }

  setInterval(() => {
    checkFooter()
    console.log('check');
  }, 1000);
</script>

</html>

就第二个代码而言,这很好。但也有同样的问题。如果有人更改 id 名称,则不会重定向。如果里面的文字它只会重定向版权ID。

我一直在寻找一个合适的代码,看起来像;

  1. 必须有版权 ID。
  2. 如果版权 ID 更改,我的意思是 ID 名称更改,将重定向。
  3. 如果版权文本使用 css 隐藏,将重定向。
  4. 如果版权范围内的文本发生变化...,将重定向。

    我该怎么做 ?

【问题讨论】:

  • 我也在寻找相同的解决方案。但没有得到任何适当的解决方案。
  • 您无法控制客户端。我可以禁用 JavaScript。我可以使用完全不支持 JavaScript 的浏览器。我可以使用像 curl/wget 这样不关心 JavaScript 的程序。 ...
  • @Andreas Oppssss.....!但是许多主题公司使用这种技术来防止在没有后端的情况下窃取他们的主题。他们是怎么做到的呢 ?
  • 他们需要连接到(+身份验证)他们的后端。

标签: javascript html jquery css


【解决方案1】:

我相信,您必须为此使用自己的标签。所以你不会处理“id”。另外,不要忘记更改文本(突变),存在多个版权元素并在设置观察者之前检查它的文本。

HTML 看起来像这样:

<footer>
  <copyright>Copyright Text</copyright> | All Rights Reserved.
</footer>

<button id="btn">Remove copyright</button>
<button id="btn1">Hide copyright</button>
<button id="btn2">Change copyright</button>

下面的 JavaScript 代码。为了观察元素的突变,我使用了MutationObserver

const copyrightElements = document.getElementsByTagName("copyright");

if (copyrightElements.length != 1){
  console.log('redirect: copyright doesnt exist or has a fake');
}

const copyright = copyrightElements[0];

if (copyright.innerHTML != "Copyright Text"){
  console.log('redirect: wrong copyright text');
}

btn.addEventListener('click', () => copyright.remove())
btn1.addEventListener('click', () => copyright.style.display = "none")
btn2.addEventListener('click', () => copyright.innerHTML = "Hello guys, site is mine")

const intersectionObserver = new IntersectionObserver((elems, obs) => {
  if(elems[0].intersectionRatio == 0) {
    console.log('redirect: intersection');
  }
});
const mutationObserver = new MutationObserver((elems, obs) => {
  console.log('redirect: mutation');
})
intersectionObserver.observe(copyright);
const mutationObserverConfig = { attributes: true, childList: true, subtree: true };
mutationObserver.observe(copyright, mutationObserverConfig);

您可以使用 CSS 将某些样式设置为“版权”标签。 显然,你必须混淆JS代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-15
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多