에서 모든 변수를 구문 분석합니다. 내가 겪고있는 문제는 함수 이름이 문자열로 전달되는 것이 아니라 정의되지 않은 변수 오류 (임시)가 발생하는 함수가 호출 될 때 컴파일된다는 것입니다.내가 문자열에서 오는 이벤트를 첨부 할 함수 선언 대신 런타임
function someFun(arg) {
alert(arg) ;
}
temp[0] = "someFunc(test)" ;//this would be a sample of the incoming HTML
var x = 0 ;
while(temp[x] != '') {
temp[x] = temp[x].replace(')','').split('(') ;//remove paranthesis and separate func name from args
temp[x][1] = temp[x][1].split(',') ;//turn string of args into array
func = function() { window[temp[x][0]].apply(el,[]) ; }
el.addEventListener('click',func,false) ;
x++ ;
}
I는 (어느 것이 'someFunc'것) [X] [0] 온도를 사용하는 것이 아니라 .apply이 경우합니다 (.apply 방법 문자열 ('someFunc'를 전달 해달라고 ...)) 직접 문제가 없으며 함수는 onClick과 함께 예상대로 호출됩니다. 그렇지 않으면 요소 엘을 클릭하면 temp가 정의되지 않았다는 오류가 발생합니다. 기능이 할당되기 전에 변수에 temp[x][0]
를 할당하는 경우 작동해야
우리는 당신이하려는 일에 대해 좀 더 많은 정보가 필요하다고 생각합니다. 우리가 더 많이 알면 목표를 달성하기위한 약간 다른 방법이있을 수 있습니다. 하고 내 자바 스크립트 파서는 모든 요소를 만들 것 .innerHTML 같은 속성 + 이벤트를 추가 할 것이다 HTML처럼 작성된 문자열을 보내려고 – ctcherry
임. 이 경우 요소 엘에 onClick 이벤트를 첨부하려고합니다. 어떻게 당신이 온 클릭 핸들러를 지정하는, 콘텐츠는 HTML과 같이 작성했습니다 들어오는 문자열에서 –
관련 코드 및 입/출력 예와 질문을 업데이트하고 설명해주십시오? 그냥'conclick ='질문하고있는 샘플을 추가 할 수 있습니까? – mplungjan