IE11 Form Templating,innerHTML& outerHTML问题

时间:2017-12-28 09:09:21

标签: javascript html internet-explorer-11

我做了一个很大的形式,我需要一点模板才能让它发挥作用。 像这样

Before

After

所以我想在我的HTML代码中使用 id =" sponsor_template" 创建一个HTML DIV,阅读它并将其添加到按钮中。 这是我的js-code

var sponsorBTN = document.querySelector('[name="sponsors_add"]');
if (sponsorBTN !== null) {
    sponsorBTN.addEventListener('click', function () {
        var s_template = document.querySelector('[id="sponsor_template"]');
        sponsorBTN.insertAdjacentHTML('beforeBegin', s_template.outerHTML.replace('id="sponsor_template"', 'name="sponsor"')
                                                               .replace('display:none', ''))
    })
}

除了IE之外,它适用于任何浏览器 我唯一知道的,问题可能是innerHTML / outerHTML,因为当我在IE中控制它时,我的输出是不完整的。 所以它只是在第7行HTML之后切断了。

以下是此问题的JSFiddle:https://jsfiddle.net/tdxkiller/b5m0t7xm/

1 个答案:

答案 0 :(得分:0)

这一行是你的问题:

s_template.outerHTML.replace('id="sponsor_template"', 'name="sponsor"').replace('display:none', '')

我不确定为什么“display:none”会出现问题;我认为“:”字符存在一些问题。但是,我将其更改为以下内容并且有效:

s_template.outerHTML.replace('id="sponsor_template"', 'name="sponsor"').replace('none', 'block')