javascript - 如何在开发者控制台中使用 Chrome 注入(inject) jQuery?

标签 javascript jquery dependency-injection google-chrome-devtools

问题

我曾经能够(在本地)使用以下两个 Chrome 扩展中的任何一个来轻松地将 jQuery 注入(inject)到还没有 jQuery 的页面中,并且我没有拥有(客户端)来试验设计更改、开发修改和实时故障排除:

不幸的是,现在由于防止“XSS”(跨站点脚本)的最新热潮,这些插件不再有效。这些变化背后可能有一个崇高的目的,我只是想了解发生了什么变化。我认为这与“内容安全策略”有关,我最近才听说,对此知之甚少。

我第一次知道XSS是2011年的浏览器问题,但是之前XSS的防范措施从来没有阻止过我做本地开发。我一直在寻找现代(2017 年底)的解决方案,但无济于事。

我不确定从这里到哪里去。

我试过但没有用的东西

以下是我尝试过的插件(直到大约 6 个月前都可以使用),但不再适合我:

  1. jQuery in Console (Plugin)
  2. jQuery Inject (Plugin)
  3. jQuery Injector (Plugin)
  4. GitHub - bluerabbit/jquery-inject: jQuery-inject(Chrome extension)

以下是我遇到的许多提供不再有效的解决方案的链接中的一些:

最后一个看起来也很有希望,但我还没有尝试过:

我的问题

  1. 如何将 jQuery(使用 Chrome 开发者控制台)注入(inject)到不使用 jQuery 的网页中?

  2. 2017 年浏览器/JavaScript/编程世界是否发生了足够显着的变化,以至于如果一个人知道这一特定变化或现象,很容易解释为什么上述插件不再有效?

    <
  3. 为什么上述插件不起作用?今年所有浏览器公司是否普遍推出了一些重大变革?

最佳答案

这是一个对我一直有效的直接方法:

var jq = document.createElement('script');
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);

// ... give time for script to load, then type (or see below for non wait option)
jQuery.noConflict();

只需将每一行粘贴到控制台中,一次一个。 (实际上,如果您选择这些行并将它们一次性全部粘贴到 DevTools 控制台中,效果会很好)。

您可能会立即看到一个错误:Uncaught ReferenceError: jQuery is not defined。忽略它 - DevTools 正在拉你的腿。 (谷歌对幽默的微弱尝试,也许...)

然后,在 DevTools 控制台中,测试它:

$('div').length; //press Enter

如果出现错误,请按以下方式尝试:

jQuery('div').length

希望第一种方法有效 - 但有时您需要使用第二种方法。

此代码感谢 jondavidjohn , 来自这个original post .

关于javascript - 如何在开发者控制台中使用 Chrome 注入(inject) jQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47997114/

相关文章:

javascript - firestore 数据结构的最佳实践是什么?

javascript - 在更改该图像父元素的大小的同时自动以原始比例更改图像大小

javascript - jquery 将值复制到其他区域

javascript - 在 HTML 中向下滚动到第 N 个字符

asp.net-mvc - 特定可移植区域的ControllerFactory

javascript - 如何检查节点是否在 Dojo 中具有特定类?

javascript - FormPanel ExtJs 3.2 中的多列

javascript - 使用条件函数的 Jquery ReplaceWith() 不符合我的预期

c# - System.web.Mvc DependencyResolver 无法为泛型类创建对象

typescript - Nestjs 依赖注入(inject)和 DDD/整洁架构