在项目中遇到一个这样的问题. 即: 进行登录以后才引进并执行一个外部的 js 文件. 代码如下:
- // 动态引进 js, 登录成功后引入 holdSession.js
- function loadScript(url, callback) {
- var script = document.createElement("script");
- script.type = "text/javascript";
- if(typeof(callback) != "undefined") {
- if(script.readyState) {
- script.onreadystatechange = function() {
- if(script.readyState == "loaded" || script.readyState == "complete") {
- script.onreadystatechange = null;
- callback();
- }
- };
- } else {
- script.onload = function() {
- callback();
- };
- }
- };
- script.src = url;
- document.body.appendChild(script);
- }
- // 点击登陆
- function fun_login(_type) {
- // 检查录入项目:
- var err = checkLogin();
- if(err) {
- alert(err);
- return;
- }
- var formData = {
- "loginType": _type,
- "loginName": $(".login-right input[name='loginname']").val(),
- "password": $(".login-right input[name='password']").val()
- };
- $.ajax({
- type: 'post',
- url: "/dp/spirit/login",
- data: formData,
- dataType: 'json',
- success: function(data) {
- if(data.returnCode == "00") {
- isLogin = "1";
- var memberObjStr = JSON.stringify(data.memberInfo);
- sessionStorage.setItem("cgpt_memberInfo", memberObjStr);
- sessionStorage.setItem("cgpt_pwd", $(".login-right input[name='password']").val());
- $("#signBox").html("");
- $("#signModal").modal("hide");
- fillMemberMes(memberObjStr);
- loadScript("/dp/cgpt/js/holdSession.js", function() {
- // 加载, 并执行回调函数
- });
- } else {
- alert("登录失败:" + data.messageInfo);
- }
- },
- error: function(XMLHttpRequest, textStatus, errorThrown) { // 失败回调函数
- var m = "系统错误:\nstatu=" + XMLHttpRequest.status + "\nreadyState=" + XMLHttpRequest.readyState + "\ntext=" + textStatus + "\nerrThrown=" + errorThrown;
- alert(m);
- }
- });
来源: http://www.bubuko.com/infodetail-2585687.html