小白请求js大神、前端大神看一下问题错在哪儿了,我的代码是完美的,但是就是报错

getZX = function(e) {
    var dad = e.parentNode;
    var index = e.dataset.idx;
    var URL = dad.childNodes[1].childNodes[0].href + '/log';
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onload = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            var temp = document.createElement('div');
            temp.innerHTML = xmlhttp.responseText;
            var user = temp.querySelector('#zh-question-log-list-wrap');
            var user0 = user.children[user.children.length - 1].children[0].outerHTML;
            var time = user.querySelector('time').innerHTML;
            var id = 'div' + index;
            var dive = document.createElement('div');
            dive.setAttribute('id', id);
            dive.innerHTML = time;
            dive.innerHTML += user0;
            e.outerHTML = dive.outerHTML
        }
    }
    xmlhttp.open('GET', URL, true);
    xmlhttp.send()
}

    window.onload=function(){

        var script = document.createElement("script");
        script.appendChild(document.createTextNode(""));
        script.setAttribute("type","text/javascript");
        document.head.appendChild(script);


        var AJAXs = document.getElementsByClassName('HotItem'),btn;
        var len=2//AJAXs.length;
        //添加所有btn
        for (let i = len-1; i >=0; i--) {
            btn = document.createElement('input');

            btn.setAttribute("data-idx",i);
            btn.setAttribute("type","button");
            btn.setAttribute("value",(i+1) +"_獲取資訊");
            btn.setAttribute("onclick","getZX(this)");
            AJAXs[i].appendChild(btn);

        }

    }


这是我的代码,功能是在知乎的热榜这个页面,为每个问题引入一按钮,可查看每个问题的时间等资讯。最让我不懂的地方是,我的这个getZX函数,用作全局变量时,一切正常;可是倘若想把它存入script标签并引入网页的head里面(代码会压成一行,同时把各种引号嵌套的问题解决掉,这些我考虑到了),就会一串报错,而且报错的理由我也看不懂。点击按钮会提示函数 is not defined。

有没有大神愿意不吝指点小人一二?

我解决了。

简化我的问题:就是

var script = document.createElement("script");
        script.appendChild(document.createTextNode("getZX=function(e){var dad=e.parentNode;var index=e.dataset.idx;var URL=dad.childNodes[1].childNodes[0].href+'/log';var xmlhttp=new XMLHttpRequest();xmlhttp.onload=function(){if(xmlhttp.readyState==4&&xmlhttp.status==200){var temp=document.createElement('div');temp.innerHTML=xmlhttp.responseText;var user=temp.querySelector('#zh-question-log-list-wrap');var user0=user.children[user.children.length-1].children[0].outerHTML;var time=user.querySelector('time').innerHTML;var id='div'+index;var dive=document.createElement('div');dive.setAttribute('id',id);dive.innerHTML=time;dive.innerHTML+=user0;e.outerHTML=dive.outerHTML}}xmlhttp.open('GET',URL,true);xmlhttp.send()}"));
        script.setAttribute("type","text/javascript");
        document.head.appendChild(script);

这段代码的报错

最好用代码块功能发布问题,这个可不太好读。

let aa

 

.