我们以 HTML 编辑器为例,现在的 HTML 编辑器都做得很好,只需要几个引用,几句 JavaScript 代码,就实现了。但我们发现,其中有很多图片,是由 JavaScript 动态指定的,但我们并没有指定图片路径,它怎么就能正确引用了呢?
比如 .js 文件和图片文件一个目录,但 .js 文件中动态创建 img 时,并不能直接指定文件名,还应该指定路径,应该这个图片的路径不应该是相对于 .js 来说的,而应该是相对于引用之的 html 文件来说有。
它大概是这样做到的:
- 获取所有的 script 标签;
- 根据 script 标签的 src 所引用的文件名,找出引用当前 .js 文件的 script;
- 剥离出第二步找到的 script 的 src 路径,这个路径就是相当于当前 html 文件对 .js 文件的路径。
示例
ezj.about.scriptPath = (function() {
var result = "";
var es = document.getElementsByTagName("script");
for (var i = 0; i < es.length; i++)
{
if (String.is(es[i].src) && es[i].src.right(6).equalsIgnoreCase("ezj.js"))
{
result = es[i].src.left(es[i].src.lastIndexOf("/") + 1);
}
}
return result;
})();
以上是 ezj 中的代码。
相关阅读