你需要使用这个一般原则
var x = {
version: 1,
alert1: function() {
alert("1hi1");
},
alert2: function() {
alert("1hi2");
}
};
var y = x;
var x = {
version: 2,
alert1: function() {
alert("2hi1");
},
alert2: function() {
alert("2hi2");
}
};
y.alert1();
x.alert1();
在jsfiddle上
jquery 提供了它的noconflict
方法,许多库提供了相同的(不一定是名称)方法。但是您可以通过参考我的示例自己完成,具体取决于您正在加载的脚本的复杂性。
以下是如何注入 2 个不同的版本,并使用上述原理将它们分配给不同的变量。
<div id="version1"></div>
<div id="version2"></div>
var script1 = document.createElement("script"),
script2 = document.createElement("script"),
oldD3;
function noConflict() {
oldD3 = d3;
console.log("loaded old");
script2.type = 'text/javascript';
script2.src = "http://d3js.org/d3.v3.min.js";
script2.addEventListener("load", ready, false);
document.head.appendChild(script2);
}
function ready() {
console.log("loaded new");
console.log(d3, oldD3);
document.getElementById("version1").textContent = oldD3.version;
document.getElementById("version2").textContent = d3.version;
}
script1.type = 'text/javascript';
script1.src = "http://d3js.org/d3.v2.min.js";
script1.addEventListener("load", noConflict, false);
document.head.appendChild(script1);
在jsfiddle上