正如标题所述,我可以在浏览器中禁用JQuery吗?
我为我的网站编写了一个JQuery函数,并认为如果有任何用户像我们禁用JS一样禁用JQuery,那我该怎么办。
我们通过浏览器中的设置禁用JavaScript,是否可以禁用JQuery?
我在这个问题上搜索了一段时间:
Disable Jquery in certain sections
Is possible to disable Javascript/Jquery from the browser inspector console?
但是在第一个问题中,用户正在询问特定的部分,而在第二个问题中,用户正在询问控制台。因此,我找不到适合我问题的正确答案。谁知道这是可能的。如果是,怎么办?
谢谢。
答案 0 :(得分:1)
如果您希望特定地禁用jQuery ,一种选择是在文档加载之前将window.jQuery
和window.$
设为不可写,并且可能使用用户脚本。例如,以下用户脚本会在此问题的页面上禁用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(通过某些扩展,我不知道)将使几乎所有网站无用