2017-12-28 5 views
0

큰 양식을 만들었고 작동하도록 템플릿이 약간 필요합니다. IE11 양식 템플릿, innerHTML 및 outerHTML 문제

Before

과 같이

After

그래서 나는 ID = "sponsor_template" 내 HTML 코드에 HTML의 DIV를 읽어와 버튼에 추가합니다. 여기에 내 JS 코드

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를 제외한 모든 브라우저에서 완벽하게 작동합니다.
내가 아는 유일한 문제는 IE에서 console.log를 사용할 때 내 출력이 불완전하기 때문에 innerHTML/outerHTML이 될 수 있습니다. 이렇게하면 HTML의 7 번째 줄 뒤에 표시됩니다. https://jsfiddle.net/tdxkiller/b5m0t7xm/

답변

0

이 줄 문제입니다 : 여기

이 문제에 JSFiddle이다 나는 그것이 " display:none"의 문제를 가지고 왜 확실하지 않다

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

; 나는 ":"문자에 약간의 문제가 있다고 생각한다. 그러나 아래로 변경하고 작동했습니다 :

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

그래, 나는 그것에 대해 생각하고 전체 outerHTML의 console.log()가 IE11에서 올바르게 나타나지 않는다고하더라도 뭔가 보여줘. 더 자세히 조사한 결과 IE11이'display : none'을'display : none; '으로 변환한다는 것을 알았습니다. –