Javascript JQuery生成的bookmarklet未在某些网站上运行

Javascript JQuery生成的bookmarklet未在某些网站上运行,javascript,jquery,iframe,bookmarklet,Javascript,Jquery,Iframe,Bookmarklet,我到处找了,但找不到答案 我使用了优秀的bookmarklet教程,其中展示了如何使用JQuery抛出iframe。它向当前页面追加一个块,检查JQuery,然后使用JQuery命令触发iframe。它工作得非常出色,但我碰巧遇到了posterous.com,它在那里不起作用 要演示,请转到教程(http://www.smashingmagazine.com/2010/05/23/make-your-own-bookmarklets-with-jquery/),找到“WikiFrame”书签(大

我到处找了,但找不到答案

我使用了优秀的bookmarklet教程,其中展示了如何使用JQuery抛出iframe。它向当前页面追加一个块,检查JQuery,然后使用JQuery命令触发iframe。它工作得非常出色,但我碰巧遇到了posterous.com,它在那里不起作用

要演示,请转到教程(http://www.smashingmagazine.com/2010/05/23/make-your-own-bookmarklets-with-jquery/),找到“WikiFrame”书签(大约在页面的一半处),将其拖到浏览器工具栏上,然后通过选择一些文本并单击书签在另一个站点上试用。它工作得很好——它会弹出维基百科页面的iframe

然而,在posterous.com上,它什么也没做。脚本块被添加到页面中,但不会触发


有人想知道为什么吗?

该教程中的wikiframe bookmarklet中有一个bug

它测试jQuery对象是否存在,然后继续使用$。在posterous.com上,$不等于jQuery

 if (typeof jQuery == 'undefined') {
      //...
 } else {
      runthis();
 }

 function runthis() {
     if ($("#wikiframe").length == 0) {
          //...
解决方案是使用jQuery而不是$,或者使用类似

(function($){ ... })(jQuery)

太棒了,谢谢你,我早该发现的!感谢您再次遇到同样的问题,并以同样的方式解决,之后发现此问答!