How to collect all script tags of HTML page in a variable

无人久伴 提交于 2019-12-28 04:21:08

问题


I would like to collect all the <script> ....</script> code section present in the HTML page in some variable.

What should be the simpler way to do this, Any idea how it can be retrieved using JavaScript.??

Any help will be greatly appreciated.


回答1:


To get a list of scripts you can use

  • document.getElementsByTagName("script"); by tag
  • document.scripts; Built-in collection
  • 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>



回答2:


The simplest way is probably document.scripts




回答3:


You would do:

var scripts = document.getElementsByTagName( 'script' );

Now scripts is a NodeList (like an array), and you can access each one using scripts[0], scripts[1] and so on.




回答4:


try this

var scripts = document.getElementsByTagName("script");



回答5:


Without jQuery :

var scripts = document.getElementsByTagName("script");

With jQuery :

var scripts = $("script");



回答6:


Here you go --

(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);
        }
})();



来源:https://stackoverflow.com/questions/11078654/how-to-collect-all-script-tags-of-html-page-in-a-variable

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!