그래서 내부에 iframe이있는 심 모르 상자를 만듭니다. iframe에는 제출 된 함수를 호출하는 텍스트 상자가 있습니다. 그런 다음이 기능은 꺼지며 자체 명령을 실행합니다. 내가하고 싶은 것은 그 사람이 심 모뮬 상자를 닫기 위해 텍스트를 제출 한 후입니다. 모달에 대한 ID를 설정할 수있는 속성을 실제로 보지 못했기 때문에 함수 외부에서 참조 할 수 있습니다. 여기 내 코드입니다 :외부에서 Simplemodal을 닫을 수 없습니다.
모달 :
$.modal('<iframe src="chrome-extension://kdcfmjjkjcgaklpmpnhcmieepkiddfen/options.min.html" height="120" width="300" style="border:0">', {
close: true,
closeHTML:"",
containerCss:{
backgroundColor:"#000",
borderColor:"#000",
height:100,
padding:0,
width:300,
height:125
},
overlayClose:true,
opacity:50,
overlayCss: {backgroundColor:"#000"}
});
options.min.html :
passMessage : 당신이 모달을 볼 수
function passMessage() {
var value = document.getElementById('speechInput').value;
var event = "commands"
$.modal.close();
chrome.extension.sendRequest({command:value}, function(response) {});
}
options.min.html을 사용하여 모달 안에 음성 입력 상자를 만듭니다. 일단 사용자가 말하는 것을 멈 추면 그 상자에서 값을 가져 오는 다른 함수가 호출됩니다. 그러나 $ .modal.close(); 함수는 실제로 모달을 닫지 않고 내 프로그램을 정지 시키며 아무데도 가지 않습니다. 다른 곳에서 만들어진 모달을 참조하는 방법을 알아야합니다. 어떤 도움
감사
이후 $ .modal.close(); http://www.ericmmartin.com/projects/simplemodal/의 iframe 예에서 작동하는 것으로 보입니다 (크롬 콘솔에서 실행). 작동하지 않으면 안되는 것 같습니다. 프로그램이 멈춘다 고 말할 때 콘솔에 오류 또는 경고가 표시되지 않습니까? 거기에 브레이크 포인트를 설정 했습니까? 이전 줄 다음에 세미콜론이 없습니까 (var event = "commands")? – RwwL
글쎄 나는 $ .modal.close() 명령 전후에 경고를하고 before 명령 만 실행합니다. 그것은 $ .modal.close() 명령에 걸리지 만 실행이 끝나면 아무 것도 멈추지 않습니다. var event = "commands"라인은 현재 내 코드에서 주석 처리되어 있으므로 아무 효과가 없습니다. 모달이 열려 있고 sendRequest가 보내지지 않습니다. $ .modal.close() 줄을 제거하면 sendRequest가 처리됩니다. – eric
$ .modal.close()를 console.log ($. 모달)로 바꾸고 로그인 내용을 확인하십시오. jsfiddle 또는 jsbin에 페이지 또는 관련 부품을 게시 할 수 있습니까? – RwwL