我可以在浏览器中禁用JQuery吗?

时间:2018-08-12 10:32:51

标签: jquery disable

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

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

我们通过浏览器中的设置禁用JavaScript,是否可以禁用JQuery?

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

Disable Jquery in certain sections

Is possible to disable Javascript/Jquery from the browser inspector console?

但是在第一个问题中,用户正在询问特定的部分,而在第二个问题中,用户正在询问控制台。因此,我找不到适合我问题的正确答案。谁知道这是可能的。如果是,怎么办?

谢谢。

5 个答案:

答案 0 :(得分: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(如果需要)。

答案 1 :(得分: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的引用,则在控制台中运行时将无法使用以上代码。

答案 2 :(得分:0)

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

在允许其他JavaScript进入浏览器设置的同时,您不能禁用 just jQuery。可以编写完成此操作的浏览器扩展/附加组件,但这并不是很有用。

在评论中您说过:

  

实际上,我为我的网站编写了一个jquery函数,并认为如果某些用户禁用了JS之类的jquery,那我该怎么办?

用户不会专门禁用jQuery,但是他们很可能会禁用JavaScript。 (如今,这种情况很少见,但人们仍然会这样做。)如果您想告诉用户启用JavaScript后您的网站效果更好,请添加noscript内容:

<noscript>
Your message goes here
</noscript>

仅向禁用了JavaScript的用户(或在完全不支持JavaScript的浏览器中)显示该内容。

答案 3 :(得分:0)

JQuery是javascript。由于它不是一种特殊的语言,并且可以在HTML文档中以任何名称附加JQuery文件,因此无法将其禁用。

但是禁用Javascript将禁用JQuery。

答案 4 :(得分:0)

您关注的是,

  

我们通过浏览器中的设置禁用JavaScript,是否可以禁用JQuery?

直接的回答是

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

第二,
jQuery只是一个库,它嵌入到浏览器中(这不是浏览器功能,如何在浏览器中禁用它?)



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

相关问题