How to add DOM element script to head section?

前端 未结 11 1083
野趣味
野趣味 2020-11-28 10:54

I want to add DOM element to head section of HTML. jQuery does not allow adding DOM element script to the head section and they execute instead, Reference.

I want t

11条回答
  •  挽巷
    挽巷 (楼主)
    2020-11-28 11:14

    Best solution I've found:

    AppendToHead('script', 'alert("hii"); ');
    //or
    AppendToHead('script', 'http://example.com/script.js');
    //or
    AppendToHead('style',  '#myDiv{color:red;} ');
    //or
    AppendToHead('style',  'http://example.com/style.css');
    
    
    
    function AppendToHead(elemntType, content){
        // detect whether provided content is "link" (instead of inline codes)
        var Is_Link = content.split(/\r\n|\r|\n/).length <= 1  &&  content.indexOf("//") > -1 && content.indexOf(" ")<=-1;
        if(Is_Link){
            if (elemntType=='script')    { var x=document.createElement('script');x.id=id;  x.src=content;  x.type='text/javascript'; }
            else if (elemntType=='style'){ var x=document.createElement('link');  x.id=id;  x.href=content; x.type='text/css';  x.rel = 'stylesheet'; }
        }
        else{
            var x = document.createElement(elemntType);
            if (elemntType=='script')    { x.type='text/javascript';    x.innerHTML = content;  }
            else if (elemntType=='style'){ x.type='text/css';    if (x.styleSheet){ x.styleSheet.cssText=content; } else { x.appendChild(document.createTextNode(content)); }   }
        }
        //append in head
        (document.head || document.getElementsByTagName('head')[0]).appendChild(x);
    }
    

提交回复
热议问题