试图将someFunction.jQuery映射到“$”
我找到了一个函数( 通过这个人的github ),我可以在我的脚本中使用它来模仿API对象的function。
这是链接中的相关代码:
unsafeWindow = (function() { var e1 = document.createElement('p') e1.setAttribute('onclick', 'return window;'); return e1.onclick(); })();
海报上说你可以使用unsafeWindow.jQuery
格式的函数
现在,我希望能够在代码中的其他地方使用$
而不是jQuery关键字。 我尝试从这个堆栈溢出问题中学习以简化它并重新编写代码,如下所示:
(function($){ var e1 = document.createElement('p') e1.setAttribute('onclick', 'return window;'); return e1.onclick(); })(jQuery);
但它没有用。 我想我可以尝试使用$ = unsafeWindow.jQuery
来映射到$
,但我想尝试以上面看到的格式进行操作。
您可以将$
映射到unsafeWindow.jQuery
如下所示:
unsafeWindow = ( function () { var dummyElem = document.createElement('p'); dummyElem.setAttribute ('onclick', 'return window;'); return dummyElem.onclick (); } ) (); var $ = unsafeWindow.jQuery; // Now you can use the page's jQuery. EG: $("body").append ('Content added by unsafeWindow.jQuery
');
但请记住:
-
这是一个Hack ,它可能会停止使用Chrome版本28。
-
由于用户脚本开火时的竞争条件,它可能仍会失败。 要解决此问题,请将
// @run-at document-end
到userscript的元数据块。 -
不要这样做! 它只会导致悲伤,副作用和维护问题。
对于用户脚本:使用此技术(最佳跨浏览器)或此技术(依赖于页面的jQuery,但该示例也显示了如何使用GM_函数) 。
对于完整扩展或内容脚本: ,使用此技术(使用
manifest.json
并将所有内容妥善保存在沙箱中) 。