Coffee Script 不会在页面更改时触发,但会在页面加载时起作用。 [Rails 5]
Coffee Script not fire on page change, but works on page load. [Rails 5]
我在我的 rails 项目中使用咖啡脚本,但问题是它仅在我加载(刷新)页面而不是在页面呈现时起作用,它也应该在页面视图更改时起作用。
这是我正在使用的脚本:
facebook.js.coffee
jQuery ->
$('body').prepend('<div id="fb-root"></div>')
$.ajax
url: "#{window.location.protocol}//connect.facebook.net/en_US/all.js"
dataType: 'script'
cache: true
window.fbAsyncInit = ->
FB.init(appId: env["app_id"], cookie: true)
$('#sign_in').click (e) ->
e.preventDefault()
FB.login (response) ->
window.location = '/auth/facebook/callback' if response.authResponse
$('#sign_out').click (e) ->
FB.getLoginStatus (response) ->
FB.logout() if response.authResponse
true
https://github.com/turbolinks/turbolinks#running-javascript-when-a-page-loads
document.addEventListener("turbolinks:load", function() {
// ...
})
你可以试试"turbolinks:load"
:
ready = ->
$('body').prepend('<div id="fb-root"></div>')
$.ajax
url: "#{window.location.protocol}//connect.facebook.net/en_US/all.js"
dataType: 'script'
cache: true
window.fbAsyncInit = ->
FB.init(appId: env["app_id"], cookie: true)
$('#sign_in').click (e) ->
e.preventDefault()
FB.login (response) ->
window.location = '/auth/facebook/callback' if response.authResponse
$('#sign_out').click (e) ->
FB.getLoginStatus (response) ->
FB.logout() if response.authResponse
true
$(document).on('turbolinks:load', ready)
我在我的 rails 项目中使用咖啡脚本,但问题是它仅在我加载(刷新)页面而不是在页面呈现时起作用,它也应该在页面视图更改时起作用。
这是我正在使用的脚本:
facebook.js.coffee
jQuery ->
$('body').prepend('<div id="fb-root"></div>')
$.ajax
url: "#{window.location.protocol}//connect.facebook.net/en_US/all.js"
dataType: 'script'
cache: true
window.fbAsyncInit = ->
FB.init(appId: env["app_id"], cookie: true)
$('#sign_in').click (e) ->
e.preventDefault()
FB.login (response) ->
window.location = '/auth/facebook/callback' if response.authResponse
$('#sign_out').click (e) ->
FB.getLoginStatus (response) ->
FB.logout() if response.authResponse
true
https://github.com/turbolinks/turbolinks#running-javascript-when-a-page-loads
document.addEventListener("turbolinks:load", function() {
// ...
})
你可以试试"turbolinks:load"
:
ready = ->
$('body').prepend('<div id="fb-root"></div>')
$.ajax
url: "#{window.location.protocol}//connect.facebook.net/en_US/all.js"
dataType: 'script'
cache: true
window.fbAsyncInit = ->
FB.init(appId: env["app_id"], cookie: true)
$('#sign_in').click (e) ->
e.preventDefault()
FB.login (response) ->
window.location = '/auth/facebook/callback' if response.authResponse
$('#sign_out').click (e) ->
FB.getLoginStatus (response) ->
FB.logout() if response.authResponse
true
$(document).on('turbolinks:load', ready)