>  기사  >  웹 프론트엔드  >  showModalDialog 및 showModelessDialog_javascript 트릭

showModalDialog 및 showModelessDialog_javascript 트릭

WBOY
WBOY원래의
2016-05-16 19:20:20843검색

showModalDialog 및 showModelessDialog 사용과 관련하여 b/s 구조 프로젝트에서 window.open을 사용하여 팝업되는 창이 일부 광고 차단 도구에 의해 차단되는 경우 showModalDialog를 사용하여 문제를 해결할 수 있지만 showModalDialog의 단점은 다음과 같습니다. 페이지 간에 값을 전달하는 것은 너무 번거롭지만(값을 전달하는 방법에는 두 가지가 있음) 실제로 이 가로채기 문제를 해결할 수 있는 다른 방법은 없으며, 유일한 방법은 이것을 사용하는 것입니다. 코드는 단 두번의 스트로크로 작성했는데, 코드 디버깅을 하다가 문제가 발견되었습니다. 마지막으로 단일 단계 추적 및 디버깅을 통해 문제가 실제로 읽기 페이지 캐시라는 것이 입증되었습니다. 이는 showModalDialog 및 showModelessDialog를 사용하여 asp.net에서 팝업 양식을 만들 때, 캐시를 지우려면 Response.Expires = 0;
Response.Cache.SetNoStore();
Response.AppendHeader("Pragma", "no-cache");를 추가하는 것이 가장 좋습니다. showModalDialog 메소드를 테스트하려면 asp, php, js, vbscript를 사용하면 캐시를 지울 필요가 없으므로 안심하고 사용할 수 있습니다. showModalDialog에 대해서는 아래에서 찾은 자세한 소개를 참조하세요.

사용법 showModalDialog 및 showModelessDialog 경험

1. showModalDialog와 showModelessDialog의 차이점은 무엇인가요?
ShowModalDialog: 열린 후에는 입력 포커스가 항상 유지됩니다. 대화 상자를 닫지 않으면 사용자는 기본 창으로 전환할 수 없습니다. 경보의 작동 효과와 유사합니다.
ShowModelessDialog: 열린 후 사용자는 입력 포커스를 무작위로 전환할 수 있습니다. 메인창에는 아무런 영향이 없습니다(최대한동안은 차단되어있습니다. :P)

2. showModalDialog와 showModelessDialog의 하이퍼링크가 새창을 띄우는 것을 방지하는 방법은 무엇인가요?
열린 웹페이지에
만 추가하면 됩니다. 이 문장은 주로 와 사이에 위치합니다.


3. showModalDialog 및 showModelessDialog의 콘텐츠를 새로 고치는 방법은 무엇입니까?
showModalDialog 및 showModelessDialog에서는 F5를 눌러 새로 고칠 수 없으며 메뉴가 팝업되지 않습니다. 다음은 javascript에만 의존할 수 있습니다.



reload...
filename.htm을 다음 이름으로 바꿉니다. 웹 페이지를 열고 열려 있는 웹 페이지에 넣고 F5를 눌러 새로 고침하세요.
와 함께 사용해야 합니다. 그렇지 않으면 F5를 누르면 새 창이 나타납니다.
참고: 접속 시 자동으로 새로고침을 하고 싶다면, 열린 페이지에서 레코드 변수를 설정하고, 모달창이 열리면 해당 변수를 1로 설정한 뒤, 위의 방법으로 새로고침하면 됩니다. modal window., 창이 닫히면 변수는 0에 도달합니다.

4. showModalDialog(또는 showModelessDialog)로 열린 창을 닫는 데 javascript를 사용하는 방법.
 
 
에도 협조해 주세요. 그렇지 않으면 새 IE 창이 열렸다가 닫힙니다.
5. showModalDialog 및 showModelessDialog의 데이터 전송 기술.
예:
이제 showModalDialog(또는 showModelessDialog)에서 var_name 변수를 읽거나 설정해야 합니다.

일반 전달 방법:
window.showModalDialog("filename.htm",var_name )     Alert(window.dialogArguments)////var_name 변수 읽기
   Window.dialogArguments="oyiboy"/ /Set var_name 변수
이 방법도 만족스럽긴 한데, var_name 연산과 동시에 두 번째 변수 var_id 연산을 하고 싶다면 어떻게 해야 할까요? 더 이상 운영할 수 없습니다. 이것이 이 배송 방법의 한계입니다.
 
   다음은 제가 추천하는 전달 방법입니다:
  window.showModalDialog("filename.htm",window)
    ///어떤 변수를 조작하든지 window 객체만 전달하세요 메인 창에서 직접
showModalDialog(또는 showModelessDialog)를 읽고 설정하는 경우:
Alert(window.dialogArguments.var_name) //var_name 변수 읽기
window.dialogArguments.var_name="oyiboy" //설정 var_name 변수

동시에 var_id 변수도 조작할 수 있습니다
> 양식 객체의 요소 등 기본 창의 모든 객체에 대해서도 조작할 수 있습니다.
   window.dialogArguments.form1.index1.value="index1 요소의 값을 설정하는 것입니다."

6. 여러 showModelessDialog의 상호 운용.

다음 코드의 주요 기능은 showModelessDialog 내에서 다른 showModelessDialog의 위치를 ​​이동하는 것입니다.

메인 파일의 js 코드 일부.
var s1=showModelessDialog('control.htm',window,"dialogTop:1px;dialogLeft:1px") //제어 창 열기
var s2=showModelessDialog('about:blank',window,"dialogTop : 200px;dialogLeft:300px") //제어된 창을 열고

.htm 코드의 일부를 제어합니다.
 
 
 
 
s1=showModelessDialog('control.htm',window,"dialogTop:1px;dialogLeft:1px")
변수 접근 방법: window.dialogArguments.s2.dialogTop

이 예는 showModelessDialog와 showModelessDialog의 차이점일 뿐입니다. showModelessDialog 사이의 위치 연산 기능을 통해, 이 원리를 통해 각 디스플레이 페이지를 showModelessDialog 사이에서 제어할 수 있습니다. , 변수 및 데이터 전송 등이 가능합니다. 이는 귀하의 성과에 따라 다릅니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.