繁体   English   中英

appendChild无法在Internet Explorer中工作

[英]appendChild not working in internet explorer

我需要能够传递标签或ID来附加内容和js文件。 像往常一样,这适用于除IE之外的所有浏览器,即仅适用于document.getElementsByTagName('head')[0] .appendChild。 有解决办法吗?

http://jsfiddle.net/qg5zexmh/

// Append js and html.
function _append(selector, arr) {
    var content = arr;
    for(var i = 0; i< content.length; i++) {
        var _content = content[i];
        var js = _content.indexOf('script');
        if(js > -1) {
            // Script tag.
            var script = document.createElement('script');
            script.type = 'text/javascript';
            var regex = /<script.*?src="(.*?)"/gmi;
            var url = regex.exec(_content);
            var inline = '';
            if(url) {
              script.src = url[1];
            } else {
              _content.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){
                inline += arguments[1] + '\n';
              });
              script.text = inline;
            }
            //document.getElementsByTagName("head")[0].appendChild(script);
            selector.appendChild(script);
        } else {
            // html content.
            selector.innerHTML += _content;
        }
    }
}
// Selector - div or tag.
var selector = document.getElementById('content');

appendChild可用于创建的元素或DOMparser(尽管DOMparser本身不适用于safari / webkit),而且将脚本追加到选择器并不是跨浏览器友好的,因此需要直接将其追加到head或body标签。

与HTML一起使用appendChild时,最简单的方法是

var str = '<h1>string of html</h1>';
var d = document.createElement('div');
d.innerHTML = str;
selector.appendChild(d);

appendChild可与内联javascript一起使用,但必须使用document.write('</ script>'); 供外部脚本使用,以使其正常运行。 回到ie8。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM