Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态Javascript导入_Javascript_Html_Ajax - Fatal编程技术网

动态Javascript导入

动态Javascript导入,javascript,html,ajax,Javascript,Html,Ajax,我正在制作一个需要能够动态更改正在运行的JavaScript代码的网页。很多时候,动态代码中的函数名称相同,但行为不同,因此使用document.getElementsByTagName('head')[0].appendChild(脚本)不是一个选项。现在,我在文档的头部有了,当我想更改活动脚本时,我调用document.getElementById('dynamicScript')。src=“ajax.php?get=script&script=“+page,该PHP页面将输出相应的脚本(不

我正在制作一个需要能够动态更改正在运行的JavaScript代码的网页。很多时候,动态代码中的函数名称相同,但行为不同,因此使用
document.getElementsByTagName('head')[0].appendChild(脚本)不是一个选项。现在,我在文档的头部有了
,当我想更改活动脚本时,我调用
document.getElementById('dynamicScript')。src=“ajax.php?get=script&script=“+page,该PHP页面将输出相应的脚本(不带标记)。不过,它不起作用。我是做错了什么,还是有什么别的方法也能奏效?

您需要向DOM中添加一个新的
元素,而不仅仅是更改它。此外,如果不重新加载页面,您也无法卸载旧脚本。如果需要删除以前脚本声明的函数和数据,则需要以编程方式执行。替换函数是有效的

最后,我建议使用脚本加载程序,如RequireJS、ControlJS或SexyJS。手工操作是额外的工作


编辑:如果您使用的是jQuery,并且不需要额外控制脚本加载顺序,也可以使用它。

仅仅因为您吐出了正确的javascript,并不意味着它正在执行。正如Stefan所指出的,一种选择是使用用于jQuery的getScript插件来完成您的任务。

也许这就是您的目的?