这可能吗?
<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(适用于页面中定义的脚本)?
答案 0 :(得分:1)
我不确定如何获取所包含的javascript代码,也不确定为什么需要这个代码,但是如何转向其他方向?
不要使用脚本标记,而是对文件进行XHR调用并评估其内容并将其内容保留为变量。
**免责声明:我不明白你为什么需要这个,我也不建议你使用这种方法,但这是一个解决方法。
答案 1 :(得分:1)
您是否认为XHR不会使用缓存版本?它可能会有一个请求,但它应该很快(重用相同的HTTP连接)并返回304(未修改)。因此,除非您的JavaScript文件的HTTP响应标头禁止或未指定缓存指令(但通常它们应该),否则将使用缓存版本。
答案 2 :(得分:-1)
我怀疑虽然浏览器知道脚本的内容,但文档不知道它们,因此无法通过DOM API访问它们。所以你必须使用XHR方法。运气好的话,如果你确保脚本被正确缓存,那么XHR请求无论如何都会从本地缓存中提取脚本内容。