0

아래 코드에서 변경 될 수있는 것에 대한 도움 (제안 사항)을 찾고 있습니다. 그렇지 않으면 숨겨진 토큰이 브라우저에 표시되지 않습니다. t 뭔가를 좋아하지 않는 반면에 IE7, 크롬 또는 Firefox.IE10에서 아래의 코드에 문제가 숨겨진 토큰은숨겨진 토큰이 IE10의 페이지에 표시됩니다.

<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %> 

<script type="text/javascript"> 
WF.onWRIAReady({}, 
function() { 
    WF.onDOMReady(addCsrfToken); 
}); 

function addCsrfToken() { 
    var csrf = '<c:out value="${sessionScope['csrfToken']}" />'; 
    //alert(csrf); 
    for (var i = 0; i < document.forms.length; i++) { 
     currentForm = document.forms[i]; 
     addHiddenInputField(currentForm, "csrfToken", csrf); 
    } 
} 

function addHiddenInputField(formElement, fieldName, fieldValue) { 
    var existingElement = null; 

    for (var i = 0; i < formElement.elements.length; i++) { 
     if (formElement.elements[i].name == fieldName) { 
      existingElement = formElement.elements[i]; 
      break; 
     } 
    } 

    if (existingElement == null) { 
     var inputElement = document.createElement("input"); 
     inputElement.setAttributeNode(createHtmlAttribute("type", "hidden")); 
     inputElement.setAttributeNode(createHtmlAttribute("name", fieldName)); 
     inputElement.setAttributeNode(createHtmlAttribute("id", fieldName)); 
     inputElement.setAttributeNode(createHtmlAttribute("value", fieldValue)); 
     formElement.appendChild(inputElement); 
    } 
    else { 
     existingElement.value = fieldValue; 
    } 
} 

function createHtmlAttribute(name, value) { 
    var attribute = document.createAttribute(name); 
    attribute.nodeValue = value; 
    return attribute; 
} 

가 사전에 감사합니다 화면에 표시됩니다 내 질문에 어떤 도움이

답변

0

정말 오래된 버전에 버그가 있습니다 o 입력란을 만들 수 없으며 typesetAttribute으로 변경하면됩니다. 직접 표기법 을 사용하면이 작동해야합니다.

var input = document.createElment("input"); 
input.type = "hidden"; 
+0

답장을 보내 주셔서 감사합니다. –

관련 문제