如何获取指定为标签" src"的文件的内容?

时间:2020-03-06 14:52:18  来源:igfitidea点击:

如果我有这样的脚本标签:

<script
    id = "myscript"
    src = "http://www.example.com/script.js"
    type = "text/javascript">
</script>

我想获取" script.js"文件的内容。我正在考虑类似document.getElementById(" myscript")。text之类的东西,但是在这种情况下不起作用。

解决方案

我们要获取文件http://www.example.com/script.js的内容吗?如果是这样,我们可以使用AJAX方法来获取其内容,前提是该内容与页面本身位于同一服务器上。

我们能详细说明我们要完成的工作吗?

不确定为什么需要这样做?

另一种方法是将脚本保存在某个位置的隐藏元素中,然后使用Eval运行它。然后,我们可以查询对象的innerHtml属性。

如果需要src属性的内容,则必须执行ajax请求并查看responsetext。如果我们要在其中放置js,则可以通过innerHTML访问它。

这可能很有趣:http://ejohn.org/blog/degrading-script-tags/

如果我们想访问&lt;script>标记的属性而不是script.js的内容,那么XPath可能就是我们想要的。

它将允许我们获取每个脚本属性。

如果我们要查找的是example.js文件的内容,则可以触发AJAX请求以获取该文件。

如果提供了src属性,则要求用户代理忽略元素的内容,如果我们需要从外部脚本访问元素,则可能是做错了什么。

更新:我看到我们已经添加了注释,以表示想要缓存该脚本并在以后使用它。为了什么目的假设HTTP是缓存友好的,那么浏览器可能已经满足了缓存需求。

.text确实为我们提供了标签的内容,只是open标签和end标签之间什么都没有。我们可以使用.src来获取元素的src属性,然后如果要获取javascript文件,则可以点击该链接并对其进行ajax请求。

我认为内容不会通过DOM提供。我们可以获取src属性的值,并使用AJAX从服务器请求文件。

在评论我以前的答案时:

I want to store the content of the script so that I can cache it and use it directly some time later without having to fetch it from the external web server (not on the same server as the page)

在这种情况下,最好使用服务器端脚本来获取和缓存脚本文件。根据服务器设置,我们可以只获取文件(如果希望更改,可以定期通过cron进行获取),也可以使用所选语言用小的脚本执行类似的操作。

使用2008年风格的DOM绑定,它宁愿是:

document.getElementById('myscript').getAttribute("src");
document.getElementById('myscript').getAttribute("type");

希望我们已经在使用一些JavaScript库...

如何获取src属性的值,URL,然后使用库的Ajax工具向该URL发出请求并将该结果保存在我们想要这样做的任何地方?

具体细节将因我们所使用的库而异。

我们想使用innerHTML属性获取script标记的内容:

document.getElementById("myscript").innerHTML

但是正如@olle在另一个答案中所说,我们可能希望阅读以下内容:
http://ejohn.org/blog/degrading-script-tags/