我想在某个变量中收集HTML页面中存在的所有<script> ....</script>
代码部分。
什么应该是更简单的方法,任何想法如何使用JavaScript检索它。??
非常感谢任何帮助。
答案 0 :(得分:26)
获取可以使用的脚本列表
document.getElementsByTagName("script");
标签document.scripts;
内置集合document.querySelectorAll("script");
by selector $("script")
jQuery by selector
var scripts = document.getElementsByTagName("script");
for (var i = 0; i < scripts.length; i++) {
if (scripts[i].src) console.log(i, scripts[i].src)
else console.log(i, scripts[i].innerHTML)
}
// To get the content of the external script
// - I use jQuery here - only works if CORS is allowing it
// find the first script from google
var url = $("script[src*='googleapis']")[0].src;
$.get(url,function(data) { // get the source
console.log(data.split("|")[0]); // show version info
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
console.log("Inline script");
</script>
<script>
function bla() {
console.log("Other inline script");
}
</script>
答案 1 :(得分:7)
最简单的方法可能是document.scripts
答案 2 :(得分:1)
你会这样做:
var scripts = document.getElementsByTagName( 'script' );
现在scripts
是一个NodeList(就像一个数组),你可以使用scripts[0]
,scripts[1]
等访问每一个。
答案 3 :(得分:1)
试试这个
var scripts = document.getElementsByTagName("script");
答案 4 :(得分:0)
没有jQuery:
var scripts = document.getElementsByTagName("script");
使用jQuery:
var scripts = $("script");
答案 5 :(得分:0)
您在这里-
(function () {
'use strict';
let logscript = function () {
let js = document.scripts;
for (let i = 0; i < js.length; i++) {
if (js[i].src) {
console.log(i, js[i].src);
} else {
console.log(i, js[i].innerHTML);
}
}
};
if (document.readyState === 'complete') {
logscript();
} else {
window.addEventListener('load', logscript);
}
})();