我有两个不能共存的javascript文件。如果用户单击一个按钮,它将加载一个js文件。如果用户单击另一个按钮,它将加载另一个文件。但最后一个需要先卸载
以下是我所拥有的一般情况:
//pseudocode
if user clicks button one
loadScript(one);
if user clicks button two
loadScript(two);
//not psuedocode
function loadScript(name)
{
var javascriptLoc = name + "/config.js";
//Unload any scripts that were previously loaded by requirejs
require.undef(); //HELP
//once config.js is loaded by requirejs...
require([javascriptLoc], function(util) {
//do stuff
});
}有办法卸载一个/config.js并加载两个/config.js吗?然后,当用户单击"one“时,它会加载一个/config.js而不是两个/config.js?
这个问题的其他表达方式:
发布于 2013-09-04 17:46:28
严格地说,浏览器不允许您卸载JavaScript文件。如果您加载的文件a.js如下:
var a = 345;JS/HTML中没有任何命令可以撤消该操作。(另见here和here)
您可以加载一组新的JS命令,这些命令否定第一个文件的效果,例如:
if (typeof a === "undefined")
var a = 34;
else
a = 34;这件事开始变得复杂了,不是吗?重新设计模块可能更容易,因此不必重新加载,例如:
function option1() {
}
function option2() {
}
//if user clicks button 1
currentOption = option1();
//if user clicks button 2
currentOption = option2();https://stackoverflow.com/questions/18520963
复制相似问题