JQuery生成的bookmarklet没有在某些网站上运行

时间:2011-01-26 22:03:21

标签: javascript jquery iframe bookmarklet

我四处寻找,但找不到答案。

我在http://www.smashingmagazine.com/2010/05/23/make-your-own-bookmarklets-with-jquery/使用了优秀的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上,它什么也没做。脚本块被添加到页面中,但它不会启动。

有人为什么会这么想?

1 个答案:

答案 0 :(得分:2)

该教程的wikiframe bookmarklet中存在一个错误。

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

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

 function runthis() {
     if ($("#wikiframe").length == 0) {
          //...

解决方案是使用jQuery而不是$,或使用类似

之类的别名$ jQuery
(function($){ ... })(jQuery)