使用 JavaScript 获取脚本标签的 innerHtml 返回'undefined'



我尝试使用JavaScript获取脚本标记的innerHtml。

var scripts = document.getElementsByTagName("script");
console.log(scripts.length);
console.log(scripts[0].innerHtml);

此脚本记录2undefined,但为什么在找到2个脚本时返回undefined?我需要获取脚本的innerHtml。如果有任何帮助,我们将不胜感激:(

编辑:在将innerHtml更改为innerHTML之后,它仍然在控制台中抛出一个错误:

Uncaught TypeError: Cannot read property 'innerHTML' of undefined (line 34)

第34行是这样的:

var scripts = document.getElementsByTagName("script"); //line 32
for (var i = 0, imax = scripts.length; i < imax; i++) { //line 33
var scriptstring = scripts[i].innerHTML; } // line 34

顺便说一句,这个脚本不是嵌入的.js文件,它是硬编码在.html文件中的

编辑2:整个.html文件

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test</title>
    <script type="text/javascript">
        onmousemove = function test1() {
            window.alert('hello');
        }
    </script>
    <script>
        window.onload = function() {
            var scripts = document.getElementsByTagName("script");
            for (var i = 0, imax = scripts.length; i < imax; i++) {
                var scriptstring = scripts[i].innerHTML;
                scriptstring = scriptstring.replace(/(rn|n|r)/gm,""); //convert the innerHTML to one line, easier to match
                if (scriptstring.match(/.*(function) (test1).*/) != null) {
                    scripts[i].parentNode.removeChild(scripts[i]);
                }
            }
        }
    </script>
</head>
<body>
</body>
</html>
innerHtml

应该是:

innerHTML

它应该是.innerHTML,而不是.innerHtml

因为您正在调用innerHTMLscript标记通过src属性声明其源,而不是在元素本身内部。

因为它是innerHTML而不是innerHtml

请重写此行
for (var i = 0, imax = scripts.length; i < imax; i++)

for (var i = 0; i < scripts.length; i++)
因为
var scriptstring = scripts[i].innerHTML;
最后一个索引处的行运行错误(第一个脚本被删除,因此scripts.length减少,imax没有更改(。

相关内容

  • 没有找到相关文章

最新更新