需要jQuery的Bookmarklet不起作用

时间:2012-04-27 18:54:25

标签: javascript jquery bookmarklet color-picker

我尝试根据jQuery Color Picker Plugin创建书签。如果我将JavaScript文件包含在页面的标题中(example),一切正常,但如果我将脚本从书签附加到页面,则颜色选择器永远不会被初始化(example) 。为了清晰起见,我尽可能地简化了js。

这里是小书签代码:

javascript:(function()%20{_my_script=document.createElement('script');_my_script.type='text/javascript';_my_script.src='http://forwardbeats.com/sandbox/colorpicker.js';document.getElementsByTagName('head')[0].appendChild(_my_script);})();

脚本被正确地附加到页面上并且似乎正在运行,但是拾取器永远不会被初始化。关于可能出现什么问题的任何想法?

注意:我通常也会测试jQuery等等,但是对于这个例子,我假设它已经在页面上。

编辑:我找到并解决了这个问题。我将在下面发布我的答案,希望我可以帮助任何有类似情况的人。

1 个答案:

答案 0 :(得分:0)

问题根本不在书签中,而是我所包含的js文件。出于某种原因,代码在页面中包含时工作正常,但在书签附加时却没有。

我注意到在使用bookmarklet时,脚本在注册之前尝试调用颜色选择器初始化函数。解决问题的所有方法都是改变我从colorPickerInit()调用的地方。之前,我在eye()之后调用它,负责调用colorPickerInit()中注册的函数。通过在colorPickerInit()内移动eye(),现在一切正常!