迁移& lt; script>…& lt; / script>To .js文件失败
Migrating <script>...</script> to .js file fails
我已经得到了oAuth代码在HTML5的标签内工作。当将其移动到.js文件并调用该文件时,我得到错误。我试过复制工作js文件(app.js)的格式,但我似乎不能让它工作。下面是代码:
oAuth.js
var Facebook = function() {
function mygetLoginStatus() {
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
mygetProfileData();
} else {
FB.login();
}
});
};
function mygetProfileData() {
FB.api('/me', {
fields: 'first_name, last_name, email, picture, work'
}, function(response) {
document.getElementById('firstname').value = response.first_name;
});
};
return {
init: function() {
window.fbAsyncInit = function() {
FB.init({
appId: '[redacted]',
xfbml: true,
status: true,
version: 'v2.4'
});
};
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {
return;
}
js = d.createElement(s);
js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
mygetLoginStatus();
mygetProfileData();
},
};
}();
registration.html
<script type="text/javascript" src="assets/js/oAuth.js"></script>
<script type="text/javascript" src="assets/js/app.js"></script>
...
<script type="text/javascript">
jQuery(document).ready(function() {
App.init();
Facebook.init();
});
</script>
控制台:Uncaught ReferenceError: FB is not defined
mygetLoginStatus @ oAuth.js:12
Facebook.init @ oAuth.js:60
(anonymous function) @ registration.event:441
m.Callbacks.j @ jquery.min.js:2
m.Callbacks.k.fireWith @ jquery.min.js:2
m.extend.ready @ jquery.min.js:2
J @ jquery.min.js:2
我做错了什么?这些都是相同类型的错误,我得到当最初在HTML内编写代码,所以我知道它似乎是某种作用域错误。
我明白了。FB必须在返回节中定义,以便其他函数可以使用。这是一个范围问题。该程序的主要逻辑还不完善,但为其他人编写了文档。
var Facebook = function () {
return {
init: function() {
window.fbAsyncInit = function() {
FB.init({
appId : '[redacted]',
xfbml : true,
status : true,
version : 'v2.4'
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
},
getLoginStatus: function() {
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
//console.log('Logged in.');
getProfileData();
}
else {
FB.login();
}
});
},
getProfileData: function() {
//console.log('Welcome! Fetching your information.... ');
FB.api('/me',{fields: 'first_name, last_name, email, picture, work'}, function(response) {
document.getElementById('firstname').value = response.first_name;
});
}
};
}();
相关文章:
- 可以& lt; script> . . & lt; / script>使用jquery编辑标签
- & lt; Tag>之前& lt; Script>标签
- & lt; script>打开页面时不总是加载
- & lt; script>标记在Underscore.js模板中
- 发送& lt; script>ajax内容中的标签
- & lt; script>作为消息发送时显示空白的标记
- 移动& lt; script>JS文件
- 把“& lt; / script>“在JavaScript的变量中
- 运行& lt; script>部分出了问题
- & lt; script>ajax响应中的标签未被IE解析<= 8
- 同步& lt; script>语句
- 迁移& lt; script>…& lt; / script>To .js文件失败
- 运行& lt; script>AJAX加载元素
- GWT & lt; script>标签没有正确加载
- & lt; script>是加载的,但不可见的铬源
- JavaScript“& lt; SCRIPT>“在图像src属性
- & lt; script>标记没有在php echo语句中呈现
- & lt; script>标签在ajax响应中没有执行
- PHP: & lt; script>从$_POST返回的标记被神秘地阻塞了
- & lt;脚本src =“X"祝辞& lt; / script>内部返回渲染| React