【发布时间】:2012-06-07 13:06:23
【问题描述】:
请问,将 JavaScript (.js) 文件动态导入父 JavaScript 代码的正确方法是什么?
我正在使用以下代码,但似乎不正确:
function loadjscssfile(filename, filetype)
{
//if filename is a external JavaScript file
if (filetype=="js")
{
var fileref=document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", filename);
}
//if filename is an external CSS file
else if (filetype=="css")
{
var fileref=document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", filename);
}
if (typeof fileref!="undefined")
document.getElementsByTagName("head")[0].appendChild(fileref)
}
我认为,代码不正确,因为在主 JavaScript 代码中,我无法读取导入代码中定义的变量,例如:
var fileRef = loadjscssfile('Language/svk.js', 'js');
alert("Pet Name: " + PETNAME);
导入的 svk.js 文件包含唯一的代码:
// JavaScript Document
var PETNAME = "Beauty";
谢谢。
【问题讨论】:
-
检查js文件导入是否成功。 den 尝试访问加载的 js 中定义的变量。
-
@Sarfraz:嗨,是的,tye 代码已导入,我可以确认一下,我将
alert("Pet Name: " + PETNAME);放入导入的代码中,然后运行,我看到了警告框具有适当的价值。但是,如果将alert("Pet Name: " + PETNAME);移动到主文件中,我无法获取PETNAME的值 -
您必须记住,文件加载和解析需要一些时间,您无法在调用函数后立即访问其内容。也许在您导入的文件中,您可以在原始代码中添加对回调的函数调用,以表明导入的文件已成功加载。
-
看看这个:stackoverflow.com/questions/950087/… 有一个很好的答案和一个很好的 jQuery 示例,在脚本被读取/加载后使用变量
-
@Yaniro:您好,感谢您的回复。我怎么知道代码已经导入?这应该只是我导入代码的最后一行吗?请给我一个例子好吗?谢谢你的好建议,我有一些想法可以进一步探索。
标签: javascript web dynamic-html