簡體   English   中英

使用JavaScript獲取腳本標簽的innerHtml返回“未定義”

[英]Get innerHtml of script-tag using JavaScript returns 'undefined'

我嘗試使用JavaScript獲取腳本標簽的innerHtml。

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

該腳本記錄2 undefined腳本,但是為什么找到2個腳本卻返回未定義腳本? 我需要獲取腳本的innerHtml。 Anny的幫助將不勝感激:)

編輯: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(/(\r\n|\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不變)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM