JS / jQuery는 프로그래밍 방식으로 "클릭 된"링크의 기본 동작을 지원하지 않습니다.
할 수있는 일은 양식을 만들어 제출하는 것입니다. 이 방법으로 당신은 window.location
또는window.open
자주 브라우저에 의해 원치 않는 팝업으로 차단되는.
이 스크립트에는 두 가지 방법이 있습니다. 하나는 3 개의 새로운 탭 / 윈도우를 열려고 시도하는 것입니다 (IE와 Chrome에서는 1 개만 열고 아래 정보가 더 있음).
방법은 다음과 같습니다.
HTML
<html>
<head>
<script src="jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="script.js" type="text/javascript"></script>
</head>
<body>
<button id="testbtn">Test</button><br><br>
<a href="https://google.nl">GOOGLE</a><br>
<a href="http://en.wikipedia.org/wiki/Main_Page">WIKI</a><br>
<a href="https://stackoverflow.com/">SO</a>
</body>
</html>
jQuery (script.js)
$(function()
{
// Try to open all 3 links by pressing the button
// - Firefox opens all 3 links
// - Chrome only opens 1 of them without popup warning
// - IE only opens 1 of them WITH popup warning
$("#testbtn").on("click", function()
{
$("a").each(function()
{
var form = $("<form></form>");
form.attr(
{
id : "formform",
action : $(this).attr("href"),
method : "GET",
// Open in new window/tab
target : "_blank"
});
$("body").append(form);
$("#formform").submit();
$("#formform").remove();
});
});
// Or click the link and fire a custom event
// (open your own window without following the link itself)
$("a").on("click", function()
{
var form = $("<form></form>");
form.attr(
{
id : "formform",
// The location given in the link itself
action : $(this).attr("href"),
method : "GET",
// Open in new window/tab
target : "_blank"
});
$("body").append(form);
$("#formform").submit();
$("#formform").remove();
// Prevent the link from opening normally
return false;
});
});
그것이하는 일은 각 링크 요소에 대한 것입니다.
- 양식 만들기
- 속성을 부여하십시오
- 제출할 수 있도록 DOM에 추가
- 제출
- DOM에서 양식을 제거하고 모든 흔적을 제거하십시오 * 악한 웃음 삽입 *
이제 새로운 탭 / 창 로딩 "https://google.nl"
(또는 원하는 URL, 교체하십시오)이 있습니다. 불행히도이 방법으로 둘 이상의 창 Popup blocked
을 열려고하면 두 번째 창 을 열려고 할 때 메시지 표시 줄이 나타납니다 (첫 번째 창이 여전히 열려 있음).
이 방법에 대한 자세한 정보는 여기에서 찾을 수 있습니다.
사용하지 않고 새 창 / 탭 열기 window.open
또는window.location.href