所以我有点练习将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);
}
它通常适用于不同的网站,但在该网站上,我得到的结果是,为什么?
答案 0 :(得分:4)
看起来你正在将jQuery注入已加载jQuery的站点。但是它使用的是旧版本的jQuery而不是你注入的版本。他们的代码使用.live()
,在jQuery 1.9中删除了它。你显然注入了至少1.9,所以现在当他们的代码试图使用.live()
时,它会出错。
答案 1 :(得分:1)
如果您打开网站: 的 https://greenbuyback.com/cell-phones/?limit=all&model=htc 强> 如果没有注入任何内容,您将在控制台中看到相同的错误。
这取决于需要jQuery 1.8.3的库 https://greenbuyback.com/skin/frontend/default/gbb/js/jm.script.js 。这个版本的jQuery包含在jQuery版本1.10.2之后。这似乎是一种解决此兼容性问题的解决方法。