2016-08-05 64 views
1

我試圖測試在Salesforce閃電組件的應用程序,但是當我加載的應用程序(我嘗試this應用)財產「的innerHTML」我無法讀取的不確定

無法讀取屬性「錯誤innerHTML的」未定義

相關的代碼是在這裏:

!(function(t, e) { 
    var r = function(e) { 
      (t.execScript || function(e) { 
       t["eval"].call(t, e) 
      })(e) 
     }, 
     i = function(t, e) { 
      return t instanceof(e || Array) 
     }, 
     s = document, 
     n = "getElementsByTagName", 
     a = "length", 
     c = "readyState", 
     l = "onreadystatechange", 
     u = s[n]("script"), 
     o = u[u[a] - 1], 
     f = o.innerHTML.replace(/^\s+|\s+$/g, ""); 
    if (!t.ljs) { 
     var h = o.src.match(/checkLoaded/) ? 1 : 0, 
      d = s[n]("head")[0] || s.documentElement, 
      p = function(t) { 
       var e = {}; 
       e.u = t.replace(/#(=)?([^#]*)?/g, function(t, r, i) { 
        e[r ? "f" : "i"] = i; 
        return "" 
       }); 
       return e 
      }, 
      v = function(t, e, r) { 
       var i = s.createElement(t), 
        n; 
       if (r) { 
        if (i[c]) { 
         i[l] = function() { 
          if (i[c] === "loaded" || i[c] === "complete") { 
           i[l] = null; 
           r() 
          } 
         } 
        } else { 
         i.onload = r 
        } 
       } 
       for (n in e) { 
        e[n] && (i[n] = e[n]) 
       } 
       d.appendChild(i) 
      }, 
      m = function(t, e) { 
       if (this.aliases && this.aliases[t]) { 
        var r = this.aliases[t].slice(0); 
        i(r) || (r = [r]); 
        e && r.push(e); 
        return this.load.apply(this, r) 
       } 
       if (i(t)) { 
        for (var s = t[a]; s--;) { 
         this.load(t[s]) 
        } 
        e && t.push(e); 
        return this.load.apply(this, t) 
       } 
       if (t.match(/\.js\b/) || t.match(/\.sfjs\b/)) { 
        t = t.replace(".sfjs", ""); 
        return this.loadjs(t, e) 
       } else if (t.match(/\.css\b/) || t.match(/\.sfcss\b/)) { 
        t = t.replace(".sfcss", ""); 
        return this.loadcss(t, e) 
       } else { 
        return this.loadjs(t, e) 
       } 
      }, 
      y = {}, 
      g = { 
       aliases: {}, 
       loadjs: function(t, r) { 
        var i = p(t); 
        t = i.u; 
        if (y[t] === true) { 
         r && r(); 
         return this 
        } else if (y[t] !== e) { 
         if (r) { 
          y[t] = function(t, e) { 
           return function() { 
            t && t(); 
            e && e() 
           } 
          }(y[t], r) 
         } 
         return this 
        } 
        y[t] = function(e) { 
         return function() { 
          y[t] = true; 
          e && e() 
         } 
        }(r); 
        r = function() { 
         y[t]() 
        }; 
        v("script", { 
         type: "text/javascript", 
         src: t, 
         id: i.i, 
         onerror: function(t) { 
          if (i.f) { 
           var e = t.currentTarget; 
           e.parentNode.removeChild(e); 
           v("script", { 
            type: "text/javascript", 
            src: i.f, 
            id: i.i 
           }, r) 
          } 
         } 
        }, r); 
        return this 
       }, 
       loadcss: function(t, e) { 
        var r = p(t); 
        t = r.u; 
        y[t] || v("link", { 
         type: "text/css", 
         rel: "stylesheet", 
         href: t, 
         id: r.i 
        }); 
        y[t] = true; 
        e && e(); 
        return this 
       }, 
       load: function() { 
        var t = arguments, 
         r = t[a]; 
        if (r === 1 && i(t[0], Function)) { 
         t[0](); 
         return this 
        } 
        m.call(this, t[0], r <= 1 ? e : function() { 
         g.load.apply(g, [].slice.call(t, 1)) 
        }); 
        return this 
       }, 
       addAliases: function(t) { 
        for (var e in t) { 
         this.aliases[e] = i(t[e]) ? t[e].slice(0) : t[e] 
        } 
        return this 
       } 
      }; 
     if (h) { 
      var j, b, x, A; 
      for (j = 0, b = u[a]; j < b; j++) { 
       (A = u[j].getAttribute("src")) && (y[A.replace(/#.*$/, "")] = true) 
      } 
      x = s[n]("link"); 
      for (j = 0, b = x[a]; j < b; j++) { 
       (x[j].rel === "stylesheet" || x[j].type === "text/css") && (y[x[j].getAttribute("href").replace(/#.*$/, "")] = true) 
      } 
     } 
     t.ljs = g 
    } 
    f && r(f) 
})(window); 

但我是用JavaScript新手,我不知道如何解決它(我想TES這個程序)

謝謝!

+0

請正確格式化您的代碼。這幾乎不可能讀取。 – AgataB

+0

請不要發佈縮小的代碼!這是不可能讀的。 http://unminify.com/可以幫助這個:) –

+0

哦,是的抱歉,我已經修復了,我認爲... – dou

回答

1

這僅僅意味着你正在尋找的元素不存在:

var elementNotFound = document.getElementById("noSuchId"); // Does not exist 
 
console.log("The element:", elementNotFound); 
 
console.log(elementNotFound.innerHTML);

正如你所張貼的mimified JavaScript和HTML沒有,我不知道該怎麼進一步幫助說:使用您使用的ID來查找元素是正確的,沒有拼寫錯誤,並且該元素實際上是在HTML中。

希望這會有所幫助。

+0

所以,這意味着元素「腳本」不存在?但似乎這個元素存在,因爲我們可以在我發佈的代碼中看到它... – dou

+0

不完全。我的意思是JavaScript試圖在HTML中查找元素。你可以這樣做的一種方式是我在上面的代碼中做了什麼:'getElementById',這意味着'document.getElementById(「noSuchId」)將返回'

';'和innerHTML'是返回的函數的函數。您正在收到錯誤,因爲您正在使用JavaSript尋找的HTML元素不存在。 –