Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Userscript—有没有办法将jquery代码注入angularjs dom?_Javascript_Jquery_Angularjs_Userscripts - Fatal编程技术网

Javascript Userscript—有没有办法将jquery代码注入angularjs dom?

Javascript Userscript—有没有办法将jquery代码注入angularjs dom?,javascript,jquery,angularjs,userscripts,Javascript,Jquery,Angularjs,Userscripts,所以我尝试为一个网站创建用户脚本。我不能改变任何源代码的网站,因为它不是我的。 网站到处都在使用AngularJS控制器。 我研究了几天如何做到这一点,但没有成功 所以我尝试在(“测试”)之后注入代码$(“.nav”)当我通过Firefox开发者控制台进行操作时,它可以工作,但当我试图通过Userscript进行操作时,为什么它不能工作呢 我添加了$(函数(){…})thingy转换为代码,以便在DOM就绪后触发句柄,但它仍然不起作用 有办法吗? 我非常想了解AngularJS的工作原理 我将非

所以我尝试为一个网站创建用户脚本。我不能改变任何源代码的网站,因为它不是我的。 网站到处都在使用AngularJS控制器。 我研究了几天如何做到这一点,但没有成功

所以我尝试在(“测试”)之后注入代码
$(“.nav”)当我通过Firefox开发者控制台进行操作时,它可以工作,但当我试图通过Userscript进行操作时,为什么它不能工作呢

我添加了
$(函数(){…})
thingy转换为代码,以便在DOM就绪后触发句柄,但它仍然不起作用

有办法吗? 我非常想了解AngularJS的工作原理


我将非常感谢您的帮助。

Angular在页面加载后会很好地修改DOM,因此您需要一些方法来等待您关心的事件或节点

此外,必须防止代码(尤其是jQuery)干扰页面的代码。这意味着您应该努力保持沙箱处于打开状态

对于Firefox+Greasemonkey或Chrome+Tampermonkey(或大多数支持
@require
指令的引擎),您可以使用和
@grant
指令来实现这些目标

这个完整的示例脚本将在FF+GM和Chrome+TM上运行:

// ==UserScript==
// @name     _Add a div after .nav elements
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @require  https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant    GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
    introduced in GM 1.0.   It restores the sandbox.
*/

waitForKeyElements (".nav", addTestDiv);

function addTestDiv (jNode) {
    jNode.after ('<div>test</div>');
}
/==UserScript==
//@name\u在.nav元素后添加一个div
//@包括http://YOUR_SERVER.COM/YOUR_PATH/*
//@需要http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
//@需要https://gist.github.com/raw/2625891/waitForKeyElements.js
//@grant GM_addStyle
//==/UserScript==
/*-需要@grant指令来解决设计变更
在GM 1.0中引入。它会恢复沙箱。
*/
waitForKeyElements(“.nav”,addTestDiv);
函数addTestDiv(jNode){
jNode.after('test');
}



如果您使用的引擎不支持
@require
指令(如纯Chrome用户脚本),请切换!Tampermonkey值得一试。

谢谢。非常感谢:)