이 기사에서는 JS가 브라우저에서 차단되는 것을 방지하기 위해 JS가 새 창을 열는 방법에 대해 설명합니다. 참조를 위해 공유하십시오. 특정 분석은 다음과 같습니다.
전통적인 창을 사용하여 새 창을 열면 브라우저가 차단됩니다. 그렇다면 어떻게 JS가 브라우저에 의해 차단되지 않고 새 창을 열 수 있습니까? 실제로 여전히 솔루션이 있습니다. 여기서는이 문제를 해결하는 방법을 분석합니다.
최근에 그런 문제가 발생 했으므로 새 창을 팝업하는 방법을 공유하겠습니다. 모두 추가 할 수 있습니다 ...
첫 번째는 기본 JavaScript Window.open () 메소드를 사용하는 것입니다 (대부분의 경우 브라우징으로 차단됩니다).
두 번째 유형은 양식 제출을 시뮬레이션하는 것입니다. 원칙은 양식의 동작이 열려고하려는 URL 주소이며 대상이 "_blank"로 설정되어 있음을 지정하는 것입니다.
코드 사본은 다음과 같습니다. document.getElementById ( "msgtxt"). innerhtml = "<form id = 'hiddenLink'action = '+shref+"'target = '_ blank'> <입력 유형 = 'object'value = '+objvalue+"' '/form>";
var s = document.getElementById ( "hiddenlink");
s.submit ();
그러나 모의 양식 제출 방법도 차단 될 수 있습니다 ...
세 번째 유형 인 시뮬레이션 하이퍼 링크 (<a>)가 클릭됩니다
버튼을 누르면 새 탭을 열려면 링크를 누른 다음 링크를 열 수 있습니다.
그러나 jQuery에서는 a.click (), a.trigger ( 'click')를 사용하여 링크 기본 이벤트가 실행되지 않습니다.
다음 코드는 링크 클릭 이벤트를 시뮬레이션 한 다음 기본적으로 링크가 열리는 이벤트를 실행합니다.
그러나 IE 브라우저의 경우 문서 .CreateEvent 함수는 IE9 이상에서만 지원되므로 다음 코드는 IE9 이상으로 실행해야합니다.
코드 사본은 다음과 같습니다. var a = $ ( "<a href = 'http : //www.test.com'target = '_ blank'> test </a>") .get (0);
var e = document.creeevent ( 'mouseevents');
e.initevent ( 'click', true, true);
a.dispatchevent (e);
네 번째 유형 : 브라우저를 사용한 버블 링 사건 (재 인쇄)
코드 사본은 다음과 같습니다. clickOpenWin : function (f) {
var datakey = "clickopenwin.datakey"
var me = $ (this);
var a = me.data (datakey);
var returndata = null;
if (! a) {
a = $ ( "");
me.data (Datakey, a);
A. Click (함수 (E) {
if (returnData) {
a.attr ( "href", returnData);
}또 다른 {
A. 전 (나);
e.Stop ();
}
});
}
me.mouseover (function () {$ (this) .before (a) .appendto (a);});
me.mouseout (function () {a.before ($ (this));});
me.click (function () {
A.attr ( "href", "#|");
returnData = F.Apply (this, Arguments);
});
}
1). 먼저 "A"를 사용하여 팝업 창을 트리거하려는 요소를 포함하는 최종 효과에 대해 이야기 해 봅시다. 원래 클릭 이벤트는 팝업 URL로 돌아갑니다. 이 문장에 해당합니다. 코드 코드를 다음과 같이 복사하십시오. returnData = F.Apply (this, arguments);
2). 그런 다음 팝업 차단 전략에 대해 이야기 할 것입니다. 나는 특정 것에 대해 이야기하지 않을 것입니다. 어쨌든, 전략은 "A"자체를 가로 채지 않을 것입니다.
3). 마지막으로 합성됩니다. 이벤트가 기포되기 때문에 A를 포함시키기 위해 A를 포함 시키면 일반 클릭을 사용하여 A에 동적 링크 주소를 생성하여 A의 원래 클릭 이벤트를 트리거 한 다음 완료됩니다.
이 기사가 모든 사람의 JavaScript 프로그래밍에 도움이되기를 바랍니다.