从另一个JS文件加载带有document.write的库

时间:2012-10-08 15:47:04

标签: javascript jquery html prototype

我有一个较旧的表单验证表单,它依赖于原型库。

不幸的是我无法在页面级别加载它,

那我该如何处理这个问题呢?

我知道每个带有表单的页面都包含以下脚本:

在剧本中我想做的事情

document.write(unescape("%3Cscript src='//ajax.googleapis.com/ajax/libs/prototype/1.6.1/prototype.js' type='text/javascript'%3E%3C/script%3E"));

但它之前没有加载原型。脚本。

我做错了什么?

好的,DOM序列很清楚。

但是,我将如何加载:

document.write(unescape("%3Cscript src='//ajax.googleapis.com/ajax/libs/prototype/1.6.1/prototype.js' type='text/javascript'%3E%3C/script%3E"));

然后执行文件本身的代码。

2 个答案:

答案 0 :(得分:0)

您正在DOM中生成一个新的脚本元素,下一步可以添加一个。

此点紧跟在当前脚本元素之后。

当前脚本元素中的任何代码都不能使用它,因为在当前元素的执行完成之前它不会被加载。

由于您使用的是jQuery,因此可以使用getScript(),它允许您传递回调方法。将依赖于动态加载的脚本的任何代码移动到回调中。

答案 1 :(得分:-1)

您应该将脚本添加到dom的头部:

var headID = document.getElementsByTagName("head")[0];         
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = 'http://ajax.googleapis.com/ajax/libs/prototype/1.6.1/prototype.js';
headID.appendChild(newScript);