這是我的問題,我有它加載明確的驗證碼腳本的index.html頁面:骨幹視圖中繪製的reCAPTCHA 2.0插件
<script src="https://www.google.com/recaptcha/api.js?onload=loadCaptcha&render=explicit" async defer></script>
我有一個包含了reCAPTCHA的容器元素的模板(DIV ):
<form id="payment-<%= model.Id %>" class="form" action="" method="POST">
...
<div class="captcha-container"></div> //not being used yet
</form>
而且我有注入模板到index.thml骨幹觀點:
'use strict';
var Backbone = require('Backbone');
var Validation = require('backbone-validation');
Backbone.Validation = Validation;
Backbone.$ = $;
module.exports = BaseView.extend({
events: {},
formView: null,
initialize: function (options) {
var loadCaptcha = function() {
window.alert('captcha is ready');
};
},
render: function() {
// renders view using my form template
}
});
在這一點上,我甚至無法觸發回調函數(loadCaptcha),我懷疑問題在於加載順序,索引頁被加載,並且在初始化骨幹視圖之前發生「onload = loadCaptcha」事件。我嘗試從腳本標記中刪除「異步」屬性,但沒有運氣。任何想法,我怎麼能得到這個工作?