이 글을 쓰는 것은 스팸 광고주에게 광고를 팝업하거나 백그라운드에서 팝업 창을 숨길 수 있다는 것을 알리기 위한 것이 아니라 IE 커널에는 여전히 대부분의 브라우저 기반 광고 차단 기능을 우회할 수 있는 몇 가지 기능이 있다는 점을 모든 사람에게 상기시키기 위한 것입니다. IE에서는 브라우저 자체를 우회해도 실제 인터넷 익스플로러 창이 바로 뜹니다. 물론 전부는 아니지만 Maxthon과 같은 일부는 더 잘 작동하지만 새 창이 열리더라도 백그라운드에서 IE를 팝업하는 대신 Maxthon에 여전히 존재하지만 TT, The World 등은 작동하지 않습니다. 일부 브라우저에서는 새 IE 창으로 직접 열 수 있습니다. 예로부터 억압되어 온 것이 하나 있는데, 이에 상응하는 해결책이 있기를 바랍니다.
원리는 간단합니다. 대부분의 브라우저의 팝업 광고 차단 기능은 window.open 기능을 차단합니다. 물론 showModalDialog 및 showModalessDialog 기능을 차단할 수 있는 몇 가지 도구와 소프트웨어가 있으며 showModal 클래스 기능은 실행 가능한 한 모달 창을 열 수 있습니다. IE는 이 함수를 완전히 캡슐화하므로 showModal 클래스 함수에서 window.open() 실행을 차단할 수 없습니다.
그러니 이 원리만 알면 자바스크립트 몇 개 직접 작성해서 사용해도 됩니다.
1. showModalDialog를 사용하여 지정된 페이지를 엽니다.
2. 지정된 페이지에 콘텐츠가 있을 필요는 없습니다. 새 창을 열려면 window.open()만 실행하면 됩니다.
3. 이 창을 연 후 모달 창(window.close())에서 닫습니다.
이런 식으로 열려고 하는 창을 모달 창을 통해 간접적으로 열 수 있습니다.
관련 코드:
기본 페이지의 코드:
<script 언어=javascript>
//모달 창 열기
함수 showDialog(dialogUrl){
var sUrl = 대화상자Url;
var sFeathers = "도움말:오프; 크기 조정 가능:오프;스크롤:아니요;상태:오프";
//sUrl = sUrl
window.showModalDialog(sUrl,"",sFeathers);
}
//지정된 URL을 엽니다.
함수 openUrl(sUrl){
//모달 창 파일 주소
varDialogUrl = "txdialog.htm";
//강제 새로 고침을 위해 임의 매개변수를 추가합니다. 여기서는 필요하지 않습니다.
DialogUrl += "?r=" + Math.random()*100000;
DialogUrl += "&url=" + sUrl;
showDialog(dialogUrl);
}
</script>
테스트 코드
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<머리>
<title>제목 없음</title>
</head>
<body>열고 싶은 창의 URL을 입력하세요:
<input type="text" name="txtUrl" id="txtUrl" value=" http://senyx.cnblogs.com ">
<입력 유형=버튼 onclick="openUrl(txtUrl.value)" value='test'>
</body>
</html>
모달 창이 위치한 페이지(txdialog.htm)에 다음 코드를 입력하세요.
<스크립트 언어=자바스크립트>
함수요청(strName)
{
var strHref = location.href;
var intPos = strHref.indexOf("?");
var strRight = strHref.substr(intPos + 1);
var arrTmp = strRight.split("&");
for(var i = 0; i < arrTmp.length; i++)
{
var arrTemp = arrTmp[i].split("=");
if(arrTemp[0].toUpperCase() == strName.toUpperCase()) return arrTemp[1];
}
반품 "";
}
var sUrl = 요청("url");
//경고(sUrl);
window.open(sUrl);
window.close();
</script>
다운로드 예:
http://fanrsh.cnblogs.com/articles/280189.html