【问题标题】:How to collect all script tags of HTML page in a variable如何在一个变量中收集 HTML 页面的所有脚本标签
【发布时间】:2012-06-20 04:12:23
【问题描述】:

我想在某个变量中收集 HTML 页面中存在的所有 <script> ....</script> 代码部分。

应该有什么更简单的方法来做到这一点,知道如何使用 JavaScript 检索它吗??

任何帮助将不胜感激。

【问题讨论】:

  • 你想解决什么问题?
  • 你的意思是使用 JavaScript 脚本,不是吗?
  • @SimeonVisser 带有包含所有脚本的脚本变量网站。

标签: javascript html html-parsing


【解决方案1】:

给你--

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

【讨论】:

    【解决方案2】:

    要获取您可以使用的脚本列表

    • document.getElementsByTagName("script"); 按标签
    • document.scripts;内置收藏
    • document.querySelectorAll("script"); 选择器
    • $("script")jQuery by 选择器

    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>

    【讨论】:

      【解决方案3】:

      没有 jQuery:

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

      使用 jQuery:

      var scripts = $("script");
      

      【讨论】:

        【解决方案4】:

        试试这个

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

        【讨论】:

        • 它不返回Array
        • 输入或拼写错误。它是 getElements,而不是 getElement,但在此页面的其他地方也已对其进行了深入回答:)
        【解决方案5】:

        最简单的方法大概是document.scripts

        【讨论】:

          【解决方案6】:

          你会这样做:

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

          现在scripts 是一个NodeList(就像一个数组),您可以使用scripts[0]scripts[1] 等来访问每一个。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-01-14
            • 2020-07-19
            • 2018-04-28
            • 2021-04-10
            相关资源
            最近更新 更多