javascript - appendChild 无法在 Internet Explorer 中工作

标签 javascript

我需要能够传入标签或 id 来附加内容和 js 文件。像往常一样,这适用于除 ie 之外的所有浏览器,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 标签.

当将appendChild与html一起使用时,最简单的方法是

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

关于javascript - appendChild 无法在 Internet Explorer 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25634759/

相关文章:

Javascript 从 xmlhttpresponse 解析响应文本

javascript - 使用 SQL 查询中的 PHP 变量回显 JS 函数

javascript - jQuery 添加 ID 增量到 .html() 追加输入 onchange 并刷新 onchange 值

javascript - 根据另一个选项隐藏/显示下拉菜单

php - Mod_重写: How to see the variables content?

javascript - 在 ListView 中打开和关闭一个可扩展项目 - React Native

javascript - 如何使随机报价生成器不重复报价

javascript - 如何编写 Websockets/AJAX 代码以实现频繁的数据库更新?或者有更好的方法吗?

javascript - 如何使用 javascript 或 jquery 在 dom 和屏幕上移动元素

javascript - 正则表达式分组步骤说明