-1

正如标题所说,我可以在浏览器中禁用 JQuery 吗?

我为我的网站编写了一个 JQuery 函数,并认为如果任何用户像我们禁用 JS 一样禁用 JQuery,那么我应该怎么做。

我们在浏览器的设置中禁用了 JavaScript,像这样,是否可以禁用 JQuery?

我在这个问题上搜索了一段时间:

在某些部分禁用 Jquery

是否可以从浏览器检查器控制台禁用 Javascript/Jquery?

但是在第一个问题中,用户要求的是特定部分,而在第二个问题中,用户要求的是控制台。所以我找不到我的问题的正确答案。有谁能知道有没有可能。如果是,如何?

谢谢你。

4

5 回答 5

1

如果您希望专门禁用 jQuery ,一种选择是在文档加载之前将其设为不可写,可能使用用户脚本window.jQuerywindow.$例如,下面的用户脚本在这个问题的页面上禁用了 jQuery,这会导致 SO 的 Javascript 中出现许多脚本错误,但不会禁用其他不依赖 jQuery 的 Javascript:

// ==UserScript==
// @name         Break-jQuery
// @namespace    CertainPerformance
// @version      1
// @match        https://stackoverflow.com/questions/51807987/can-i-disable-jquery-in-browsers
// @run-at       document-start
// @grant        none
// ==/UserScript==

Object.defineProperty(window, 'jQuery', {
  value: undefined,
  writable: false
});
Object.defineProperty(window, '$', {
  value: undefined,
  writable: false
});

但是没有太多理由这样做——最好是完全禁用 Javascript,或者允许站点使用 jQuery,如果它愿意的话。

于 2018-08-12T10:46:39.153 回答
1

但是你必须以一种古怪的方式来完成这个。

jQuery(document).ready(function() {
   jQuery = null;
   $ = null;  // or undefined or 
   // delete jQuery; delete $;
});

如果其他方法已经初始化,那么这将无济于事。但是进一步的方法实现将不起作用。

如果发生其他方法或函数或绑定,则必须在此之后开始。

$(document).on('click', function() {
  console.log("previous bind successfully working");
});

$(document).ready(function() {
  console.log('jquery enabled');
  delete jQuery;
  delete $;
  try {
    console.log($(document));
    console.log('jQuery', jQuery, $);
  } catch (e) {
    console.log(e, 'in catch block');
  }
  setTimeout(function() {
    try {
      $(document).on('click', function() {
        console.log("bind successfull with jquery");
      });
    } catch (e) {
      console.log(e, 'in catch block');
    }
  }, 100);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

如果在浏览器中你想这样做,就像我说的那样,如果一旦 jquery 用功能初始化,就很难解除它们的绑定。如果以后有 jquery 的引用,如果在控制台中运行,它将无法与上面的代码一起使用。

于 2018-08-12T10:53:00.883 回答
0

您可以通过禁用 JavaScript 在浏览器中禁用 jQuery。jQuery 只是一个用 JavaScript 编写的库,而不是它自己的语言。

在浏览器设置中允许其他 JavaScript 时,您不能只禁用 jQuery。可以编写一个浏览器扩展/插件来做到这一点,但它不是很有用。

在评论中你说:

实际上,我为我的网站编写了一个 jquery 函数,并认为如果某些用户像 JS 一样禁用 jquery,那么我该怎么做。

用户不会专门禁用 jQuery,但他们可能会禁用 JavaScript。(现在已经很少见了,但人们仍然这样做。)如果您想告诉用户您的网站在启用 JavaScript 时运行得更好,请包含noscript以下内容:

<noscript>
Your message goes here
</noscript>

该内容只会显示给禁用 JavaScript 的用户(或在根本不支持 JavaScript 的浏览器中)。

于 2018-08-12T10:36:10.633 回答
0

jQuery 是 JavaScript。由于它不是一种特殊类型的语言,并且 JQuery 文件可以以任何名称附加到 HTML 文档中,因此不能禁用它。

但是禁用 Javascript 将禁用 JQuery。

于 2018-08-12T10:39:14.113 回答
0

您关心的是,

我们在浏览器的设置中禁用了 JavaScript,像这样,是否可以禁用 JQuery?

直接的答案是否定的

首先,
您必须了解 Javascript 是一种用于 Web 的嵌入式脚本语言。

其次,
jQuery 只是一个库,并没有嵌入到浏览器中(它不是浏览器功能,你怎么能在浏览器中禁用它?)



此外禁用jQuery(通过一些扩展,我不知道)会使几乎所有网站都无用

于 2018-08-12T10:40:04.973 回答