iOS LINE의 내장 브라우저가 POST 폼의 target=_blank로 거동이 미치는 건
개요
iOS의 LINE 브라우저의 거동이 이상해졌습니다.
현상
환경 : iOS의 LINE과 Yahoo의 내장 브라우저 (그 밖에도 있을지도 모른다.)
조건: POST 메소드의 form 태그에 target="_blank"가 지정되어 있다
결과 : form의 action처에는 천이하지만, form의 파라미터는 모두 빠진다
재현
1. 코드
html01.html<html>
<head>
<meta charset="UTF-8" />
<style type="text/css">
div {
border: 1px solid black;
margin-top:10px;
}
</style>
</head>
<body>
<div>
targetなしPOSTフォーム
<form action="./php01.php" method="POST">
<input name="name" type="text" value="kumanobori" />
<input name="type" type="text" value="kuma" />
<input type="submit" />
</form>
</div>
<div>
targetありPOSTフォーム
<form action="./php01.php" method="POST" target="_blank">
<input name="name" type="text" value="kumanobori" />
<input name="type" type="text" value="kuma" />
<input type="submit" />
</form>
</div>
</body>
</html>
php01.php<?php
echo 'REQUEST_URI: ' . $_SERVER['REQUEST_URI'] . '<br />';
echo 'POST:' . mb_ereg_replace("\r|\n", '', print_r($_POST, true)) . '<br />';
2. html 표시
3. 정상적인 결과(iOS의 Line 내장 브라우저의 target 있는 경우 이외)
4. 비정상적인 결과(iOS의 Line 내장 브라우저의 target 있는 경우)
해결 방법
User-Agent로 판정하여 target="_blank"
의 출력 유무를 제어했습니다.
기타
시험한 환경(이하는 모두 세이프)
iOS slack 내장
iOS 크롬
iOS Safari
android Yahoo 내장
안드로이드 LINE 내장
안드로이드 크롬
상기 코드 이외에서 시험한 조건(이하는 모두 세이프)
GET 메소드의 양식 target="_blank"
a 태그 target="_blank"
포엠
LINE 브라우저의 거동이 이상하다는 것으로 조사했습니다만, 이런 낡은 옵션으로 거동이 미친다고는 생각하지 않고, 마음껏 빠졌습니다. . .
2021.09.10 추가
스마트 폰의 LINE 내장 브라우저라면 '새로운 윈도우'라는 개념이 없기 때문에 거기에 사정이 있겠지라는 생각은 하지 않아도 됩니다.
그렇지만 android판은 제대로 하고-. (새 창은 열리지 않지만 제대로 전환)
그리고, Yahoo 어플에 이르러는 내장 브라우저가 멀티 탭 대응하고 있기 때문에 거기에 사정을 둔황할 여지조차 없고-.
Reference
이 문제에 관하여(iOS LINE의 내장 브라우저가 POST 폼의 target=_blank로 거동이 미치는 건), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kumanobori/items/9cb3a3797c205dc2bfca
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
환경 : iOS의 LINE과 Yahoo의 내장 브라우저 (그 밖에도 있을지도 모른다.)
조건: POST 메소드의 form 태그에 target="_blank"가 지정되어 있다
결과 : form의 action처에는 천이하지만, form의 파라미터는 모두 빠진다
재현
1. 코드
html01.html<html>
<head>
<meta charset="UTF-8" />
<style type="text/css">
div {
border: 1px solid black;
margin-top:10px;
}
</style>
</head>
<body>
<div>
targetなしPOSTフォーム
<form action="./php01.php" method="POST">
<input name="name" type="text" value="kumanobori" />
<input name="type" type="text" value="kuma" />
<input type="submit" />
</form>
</div>
<div>
targetありPOSTフォーム
<form action="./php01.php" method="POST" target="_blank">
<input name="name" type="text" value="kumanobori" />
<input name="type" type="text" value="kuma" />
<input type="submit" />
</form>
</div>
</body>
</html>
php01.php<?php
echo 'REQUEST_URI: ' . $_SERVER['REQUEST_URI'] . '<br />';
echo 'POST:' . mb_ereg_replace("\r|\n", '', print_r($_POST, true)) . '<br />';
2. html 표시
3. 정상적인 결과(iOS의 Line 내장 브라우저의 target 있는 경우 이외)
4. 비정상적인 결과(iOS의 Line 내장 브라우저의 target 있는 경우)
해결 방법
User-Agent로 판정하여 target="_blank"
의 출력 유무를 제어했습니다.
기타
시험한 환경(이하는 모두 세이프)
iOS slack 내장
iOS 크롬
iOS Safari
android Yahoo 내장
안드로이드 LINE 내장
안드로이드 크롬
상기 코드 이외에서 시험한 조건(이하는 모두 세이프)
GET 메소드의 양식 target="_blank"
a 태그 target="_blank"
포엠
LINE 브라우저의 거동이 이상하다는 것으로 조사했습니다만, 이런 낡은 옵션으로 거동이 미친다고는 생각하지 않고, 마음껏 빠졌습니다. . .
2021.09.10 추가
스마트 폰의 LINE 내장 브라우저라면 '새로운 윈도우'라는 개념이 없기 때문에 거기에 사정이 있겠지라는 생각은 하지 않아도 됩니다.
그렇지만 android판은 제대로 하고-. (새 창은 열리지 않지만 제대로 전환)
그리고, Yahoo 어플에 이르러는 내장 브라우저가 멀티 탭 대응하고 있기 때문에 거기에 사정을 둔황할 여지조차 없고-.
Reference
이 문제에 관하여(iOS LINE의 내장 브라우저가 POST 폼의 target=_blank로 거동이 미치는 건), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kumanobori/items/9cb3a3797c205dc2bfca
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<html>
<head>
<meta charset="UTF-8" />
<style type="text/css">
div {
border: 1px solid black;
margin-top:10px;
}
</style>
</head>
<body>
<div>
targetなしPOSTフォーム
<form action="./php01.php" method="POST">
<input name="name" type="text" value="kumanobori" />
<input name="type" type="text" value="kuma" />
<input type="submit" />
</form>
</div>
<div>
targetありPOSTフォーム
<form action="./php01.php" method="POST" target="_blank">
<input name="name" type="text" value="kumanobori" />
<input name="type" type="text" value="kuma" />
<input type="submit" />
</form>
</div>
</body>
</html>
<?php
echo 'REQUEST_URI: ' . $_SERVER['REQUEST_URI'] . '<br />';
echo 'POST:' . mb_ereg_replace("\r|\n", '', print_r($_POST, true)) . '<br />';
User-Agent로 판정하여
target="_blank"
의 출력 유무를 제어했습니다.기타
시험한 환경(이하는 모두 세이프)
iOS slack 내장
iOS 크롬
iOS Safari
android Yahoo 내장
안드로이드 LINE 내장
안드로이드 크롬
상기 코드 이외에서 시험한 조건(이하는 모두 세이프)
GET 메소드의 양식 target="_blank"
a 태그 target="_blank"
포엠
LINE 브라우저의 거동이 이상하다는 것으로 조사했습니다만, 이런 낡은 옵션으로 거동이 미친다고는 생각하지 않고, 마음껏 빠졌습니다. . .
2021.09.10 추가
스마트 폰의 LINE 내장 브라우저라면 '새로운 윈도우'라는 개념이 없기 때문에 거기에 사정이 있겠지라는 생각은 하지 않아도 됩니다.
그렇지만 android판은 제대로 하고-. (새 창은 열리지 않지만 제대로 전환)
그리고, Yahoo 어플에 이르러는 내장 브라우저가 멀티 탭 대응하고 있기 때문에 거기에 사정을 둔황할 여지조차 없고-.
Reference
이 문제에 관하여(iOS LINE의 내장 브라우저가 POST 폼의 target=_blank로 거동이 미치는 건), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kumanobori/items/9cb3a3797c205dc2bfca
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(iOS LINE의 내장 브라우저가 POST 폼의 target=_blank로 거동이 미치는 건), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kumanobori/items/9cb3a3797c205dc2bfca텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)