2016-12-22 71 views
2

所以我有點實踐注入jQuery到不同的網站,看看我的代碼如何工作,我碰到這種情況,我似乎無法弄清楚爲什麼這個人不想接受我的即使它被放置在標題中並表示成功注射。注入jQuery不工作

以下是我正在試圖注入代碼:

var fileref = document.createElement('script'); 
fileref.setAttribute("type","text/javascript"); 
fileref.setAttribute("src", "https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"); 

if (document.getElementsByTagName("head") != undefined) 
{ 
    console.log("Adding jQuery to head"); 
    document.getElementsByTagName("head")[0].appendChild(fileref); 
} 
else 
{ 
    console.log("Adding jQuery to document"); 
    document.appendChild(fileref); 
} 

它通常適用於不同的網站,但該網站上,我得到這個結果爲,爲什麼呢?

photo of the selector

Photo of chrome console

+0

你的代碼注入Angular而不是jQuery。你發佈了錯誤的代碼嗎? – Barmar

+0

但糾正我,如果我錯了,但不AngularJS包含jQuery的? – m3kkis

+0

我不知道,我從來沒有用過它。我希望它需要你先加載jQuery,但也許它會自動加載它。 – Barmar

回答

4

它看起來像你的jQuery注入到已加載的jQuery的站點。但它使用的是比您注入的版本更舊的jQuery版本。他們的代碼使用.live(),它在jQuery 1.9中被刪除。你顯然已經注入了至少1.9,所以現在當他們的代碼嘗試使用.live()它會得到一個錯誤。

+0

好吧,如果我理解正確,爲了解決這個問題,我應該嘗試使用舊版本? – m3kkis

+2

或者,也許你不應該向其他網站注入代碼,因爲很難預測依賴關係是什麼。或者你可以使用'jQuery.noConflict()'來允許多個版本共存。 – Barmar

+0

好吧,所以它沒有工作,當我改變它:fileref.setAttribute(「src」,「https://code.jquery.com/jquery-1.10.2.min.js」); – m3kkis