通过脚本加载器在书签中加载外部JavaScript

时间:2013-06-14 22:04:10

标签: javascript jquery bookmarklet inject

这是我目前的设置:

  1. 我的Sharepoint上有一个脚本。
  2. 每个用户都会在书签中添加它以使用它。
  3. 如果我进行更新,他们必须重新设置书签。
  4. 我想做什么:

    1. 用户将脚本加载器添加到书签工具栏
    2. 他们点击它,然后从我们的Sharepoint加载脚本。
    3. 这样,如果我需要进行任何更改,他们不需要做任何事情,并且会自动反映更改。

      我的bookmarklets /脚本依赖于jQuery来制作ajax任务,而且只是为了一般的易用性。

      我目前正在使用此:http://benalman.com/projects/run-jquery-code-bookmarklet/

      我可以使用这种框架吗?我知道Visual Event使用了一个加载器,但由于它是用Closure压缩的,所以我无法确切地知道它在做什么。我明白,因为事情是在Javascript中异步加载的,所以我必须将我的所有代码都包装在jquery中,这很好..我只是需要一种方法来实现它。

1 个答案:

答案 0 :(得分:6)

您需要做的就是将bookmarklet代码移动到外部js文件,然后使用bookmarklet注入该文件。这样,书签就会注入最新的逻辑,您不必再次重新加入书签。 在该外部脚本中,您可以将jQuery.js文件的内容粘贴到JS代码上方,以确保它按预期运行。

修改网址以指向您的脚本:

javascript:(function (){document.getElementsByTagName('head')[0].appendChild(document.createElement('script')).src='http://domain.com/scripts/external.js?'+Math.random();}());

如果您的Intranet具有良好的缓存设置,您可以删除“+ Math.random()”部分,但在Intranet上,性能很少是按需单URL资源加载的问题,随机网址确保每个人都会得到最新的副本。