2017-01-13 1 views
0

레코드의보기 모드에서 워크 플로에 의해 추가 된 단추를 숨길 수 있는지 묻고 싶습니다. 워크 플로가 잠겨 있으므로 작업을 비활성화하면 옵션이 아닙니다.보기에서 워크 플로로 추가 된 단추 제거

사용자 이벤트 스크립트 beforeLoad를 사용하여 레코드의보기 모드에서 클라이언트 스크립트를 호출하려고합니다. 코드는 다음과 같습니다.

form.setScript를 사용하는 사용자 이벤트 스크립트. customscript_client_script :

//User Event Script 
function callClientScript(type, form) { 
    if (type == 'view') { 
     form.setScript('customscript_client_script'); 
    } 
} 

ID로 클라이언트

//Client Script 
function removeButton() { 
    document.getElementById('HTML Id of button to hide').style.display = 'none'; 
} 

불행히도,이 작동하지 않습니다. 내가 조사한 모든 예제는 클릭했을 때 실행되도록 클라이언트 스크립트를 바인딩하는 버튼을 사용합니다. 사용자 이벤트 스크립트에 다음 코드 줄을 추가합니다.

form.addButton('custpage_my_button', 'Button Test', 'removeButton()'); 

테스트를 통과했는데 정상적으로 작동합니다. 그러나 페이지가로드 된 후 자동으로 "removeButton()"함수를 실행해야합니다.

+0

는 pageInit에서 실행되는 clientscript인가? 그렇지 않다면 시도하십시오. –

+0

@AdolfoGarza 안녕하세요, 클라이언트 스크립트가 배포되지 않았습니다. 사실 그것은 내 연구를 기반으로 할 필요가 없습니다. 그러나 그때, 나는 여전히 pageInit에 함수를 넣으려고했으나 여전히 작동하지 않습니다. 의견 tho 주셔서 감사합니다. – Jet

+0

UserEvent에서 호출하는 경우에는 필요하지 않지만 clientscript 만 사용하는 경우에는 호출하지 않아도됩니다. Userevent없이 사용해보십시오. –

답변

0

이렇게하려면 DOM 해킹을 사용해야합니다. beforeLoad 중에 작성된 inlineHTML 본문 필드와 클라이언트 스크립트 코드를 기본값으로 설정된 문자열로 사용하고 <script> 태그로 둘러싸인 자바 스크립트를 삽입해야합니다. Suitescript 2.0에서이 같은

뭔가 :

var injectScriptField = form.addField({ 
     id : 'custpage_injectscript', 
     type : UIMODULE.FieldType.INLINEHTML, 
     label : 'Inject Script Field' 
    }); 
injectScriptField.defaultValue = '<script>alert("Hello");</script>'; 
+0

안녕하세요 @ AdolfoGarza,이 기능이 작동했습니다. 정말 고마워. inlineHTML을 사용하여이 작업을 수행 할 수 있는지 알지 못했습니다. 기본적으로이 필드는 숨겨져 있습니까? 왜냐하면 나는 어디에서나 그것을 찾을 수 없기 때문이다. 또한 추가하려면 필드를 숨김으로 설정했는데 어떤 이유로 작동하지 않습니다. 다시 한번 감사드립니다. – Jet

+0

필드가 숨겨져 있다고 생각하지 않습니다. 적어도 레이블을 볼 수 있어야합니다. 사용자 정의 탭 아래에로드되었을 수 있습니다. –

+0

인라인 필드에 레이블이 표시되지 않습니다. – vVinceth

관련 문제