我正在使用turbolinks 5 beta 1,对于某些特定页面,我想加载外部JavaScript文件。
举个例子,我有一个联系人页面,希望通过加载谷歌地图API来显示地图。当访问根页面时不应加载该文件,而是在单击到达联系人页面链接后再进行加载。
在Turbolinks 2中可以生成JavaScript脚本标签,但似乎不再起作用。
如果需要的话,还可以检查JavaScript是否已经加载,否则可以异步加载它。
像这样:
loadScript = (src, callback) ->
script = document.createElement("script")
script.type = "text/javascript"
script.onload = callback if callback
document.getElementsByTagName("head")[0].appendChild(script)
script.src = src
initialize = ->
# init map here
load = ->
if $('#gmap').size > 0
if typeof(google) == 'function'
initialize()
else
loadScript 'https://maps.googleapis.com/maps/api/js?&callback=initialize'
$(document).on 'turbolinks:load', -> load()
这是处理该问题的唯一方式吗?还是有更简单的方法吗?