如何获取指定为标签" src"的文件的内容?
如果我有这样的脚本标签:
<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/
如果我们想访问<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/