另一种在js代码中加载js文件的方法

时间:2009-12-14 07:39:41

标签: javascript dom

我在javaScript时间打开了一个javaScript文件....

document.write("<script src='newnote.js' type='text/javascript'></script>");

还有另一种在js代码中加载js的方法吗??

(这个文件用于加载一个弹出菜单js代码,在延迟后加载时钟js代码...所以我想要一种其他方式加载它)

5 个答案:

答案 0 :(得分:6)

打开JS文件时,会立即执行其代码 - 创建函数,运行代码,设置事件。 “卸载”Javascript文件的唯一方法是手动撤消因加载不需要的文件而运行的所有代码:将所有新函数,变量和原型添加设置为undefined(例如{{1} ,取消设置所有事件,删除所有新的DOM元素..

如果你想在每次打开页面时卸载另一个JS文件,理论上它可以完成,但不是很容易,如果加载的JS文件应该更改,你将不得不更新你的无效文件。

答案 1 :(得分:4)

你所做的并不像用C ++或Java这样的编程语言打开本地文件。你不需要关闭任何东西。

答案 2 :(得分:3)

您没有打开javascript文件,实际上您无法从本地文件系统打开任何文件,因此不存在关闭的问题。您正在插入脚本标记替换文档的所有内容。这将导致使用当前url获取newnote.js,newnote.js在最后一次斜杠后替换任何内容。

答案 3 :(得分:3)

您要添加到页面的脚本(在本例中为newnote.js)是否可能导致您遇到的错误?

而不是您从document.write开始使用的行代替:

var newnote = document.createElement('script');
newnote.src = "newnote.js";
newnote.type = "text/javascript";
document.documentElement.firstChild.appendChild( newnote );

如果仍然出现引号错误,则newnote.js内的代码会搞砸。

不要认为这确实是你问的问题,但是如果你使用了我上面列出的代码,那么你可以通过调用这个来从你的页面中删除这个文件:

document.documentElement.firstChild.removeChild( newnote );

再想一想:

如果newnote.js的路径不正确(因为它与调用页面不在同一目录中),则服务器将返回404错误页面而不是文件。如果您的浏览器试图像javascript一样执行它,它可能会抛出错误。尝试提供完整的网址:http://yoursite.com/js/newnote.js或根相对网址:/js/newnote.js

答案 4 :(得分:0)

要包含脚本,您可以尝试这样做:

var s = document.createElement('script');
s.src = 'newnote.js';
s.type = 'text/javascript';
var head = document.getElementsByTagName('head')[0]
head.appendChild(s);

或者那样:

document.write("<script type='text/javascript' src='newnote.js'><\/sc" + "ript>");