需要 jQuery 的书签不起作用

Bookmarklet requiring jQuery doesn't work

本文关键字:不起作用 书签 jQuery 需要      更新时间:2023-09-26

我正在尝试创建一个基于jQuery颜色选择器插件的书签。如果我在页面标题中包含 JavaScript 文件(示例),一切正常,但是如果我将脚本从书签附加到页面,则颜色选择器永远不会初始化(示例)。为了清楚起见,我已经尽可能地简化了 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,但对于此示例,我假设它已经在页面上。

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

问题根本不在书签中,而在于我包含的 js 文件。出于某种原因,代码在包含在页面中时工作正常,但当它被附加到书签时则不然。

我注意到在使用书签时,脚本在注册之前尝试调用颜色选择器初始化函数。要解决问题,我所要做的就是改变我打电话给colorPickerInit()的地方。以前,我在eye()之后调用它,它负责调用在colorPickerInit()中注册的函数。通过在eye()内移动colorPickerInit(),现在一切正常!