如何在没有xhr的情况下获取包含的js文件的内容?

时间:2011-06-22 08:14:34

标签: javascript html

这可能吗?

<html>
  <script src="local.js>
  <script>
    // get contents of local.js file here without doing an ajax call?
  </script>
</html>

local.js驻留在同一台服务器上,我知道通过xhr调用我可以得到它的内容(如果不是在文件://)。

但是,由于浏览器已经同步请求它,因此文档已知其内容,所以我希望有一种方法可以访问它? document.scripts集合对我没用。

有点像获取innerHTML(适用于页面中定义的脚本)?

3 个答案:

答案 0 :(得分:1)

我不确定如何获取所包含的javascript代码,也不确定为什么需要这个代码,但是如何转向其他方向?

不要使用脚本标记,而是对文件进行XHR调用并评估其内容并将其内容保留为变量。

**免责声明:我不明白你为什么需要这个,我也不建议你使用这种方法,但这是一个解决方法。

答案 1 :(得分:1)

您是否认为XHR不会使用缓存版本?它可能会有一个请求,但它应该很快(重用相同的HTTP连接)并返回304(未修改)。因此,除非您的JavaScript文件的HTTP响应标头禁止或未指定缓存指令(但通常它们应该),否则将使用缓存版本。

答案 2 :(得分:-1)

我怀疑虽然浏览器知道脚本的内容,但文档不知道它们,因此无法通过DOM API访问它们。所以你必须使用XHR方法。运气好的话,如果你确保脚本被正确缓存,那么XHR请求无论如何都会从本地缓存中提取脚本内容。