通过脚本加载器在bookmarklet中加载外部javascript

通过脚本加载器在bookmarklet中加载外部javascript,javascript,jquery,bookmarklet,inject,Javascript,Jquery,Bookmarklet,Inject,以下是我当前的设置: 我在Sharepoint上有一个脚本 每个用户都将其添加到bookmarklet中以使用它 如果我更新了,他们必须重新设置书签 我想做的是: 用户将脚本加载器添加到书签工具栏 他们点击它,它从我们的Sharepoint加载脚本 这样,如果我需要做任何更改,他们不必做任何事情,更改将自动反映出来 我的bookmarklet/脚本依赖jQuery来完成ajax任务,只是为了一般的易用性 我目前正在使用: 有没有一个框架,我可以使用这种事情?我知道VisualEvent使用加载程

以下是我当前的设置:

  • 我在Sharepoint上有一个脚本
  • 每个用户都将其添加到bookmarklet中以使用它
  • 如果我更新了,他们必须重新设置书签
  • 我想做的是:

  • 用户将脚本加载器添加到书签工具栏
  • 他们点击它,它从我们的Sharepoint加载脚本
  • 这样,如果我需要做任何更改,他们不必做任何事情,更改将自动反映出来

    我的bookmarklet/脚本依赖jQuery来完成ajax任务,只是为了一般的易用性

    我目前正在使用:


    有没有一个框架,我可以使用这种事情?我知道VisualEvent使用加载程序,但由于它是用闭包压缩的,所以我真的不知道它在做什么。我知道,由于东西是在Javascript中异步加载的,所以我必须将所有代码封装在正在加载的jquery中,这很好。。我只需要一种方法。

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

    修改url以指向脚本:

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

    如果您的intranet具有良好的缓存设置,您可以删除“+Math.random()”部分,但在intranet上,性能很少会成为按需加载单个url资产的问题,随机url可以确保每个人都始终获得最新副本。

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

    修改url以指向脚本:

    javascript:(function (){document.getElementsByTagName('head')[0].appendChild(document.createElement('script')).src='http://domain.com/scripts/external.js?'+Math.random();}());
    
    如果您的intranet具有良好的缓存设置,则可以删除“+Math.random()”部分,但在intranet上,性能很少会成为按需加载单个url资产的问题,随机url确保每个人都始终获得最新副本