Google 크롬 "window.open"해결 방법?
나는 웹 앱을 작업 중이며 일부를 위해 새 창을 열어야합니다. 모든 브라우저에서이 작업을 수행하고 있으며 내 고집 포인트는 Google 크롬입니다.
Chrome은 문제를 일으키는 창 기능을 무시하는 것 같습니다. 제가 어려움을 겪고있는 것은 새 창에서 주소 표시 줄을 편집 할 수 있어야한다는 것입니다. FF, IE, Safari 및 Opera는이 작업을 잘 수행하지만 Chrome은 그렇지 않습니다.
내 코드 :
function popitup(url) {
newwindow=window.open(url, 'name', 'toolbar=1,scrollbars=1,location=1,statusbar=0,menubar=1,resizable=1,width=800,height=600');
if (window.focus) {
newwindow.focus()
}
return false;
}
다른 답변은 구식입니다. Chrome for의 동작 window.open
은 호출 된 위치 에 따라 다릅니다. 이 항목을 참조하십시오 .
window.open
사용자 작업 (예 : onclick 이벤트)을 통해 트리거 된 핸들러에서를 호출 하면 <a target="_blank">
기본적으로 새 탭에서 열리는와 유사하게 작동합니다 . 그러나를 window.open
다른 곳에서 호출하면 Chrome은 다른 인수를 무시하고 항상 수정할 수없는 주소 표시 줄이있는 새 창을 엽니 다.
이것은 근거가 완전히 명확하지는 않지만 일종의 보안 조치처럼 보입니다.
이것은 나를 위해 일했습니다.
newwindow = window.open(url, "_blank", "resizable=yes, scrollbars=yes, titlebar=yes, width=800, height=900, top=10, left=10");
location=1
부분은 편집 가능한 위치 표시 줄을 사용하도록 설정해야합니다.
참고로, language="javascript"
이제 더 이상 사용되지 않는 속성을 스크립트에서 삭제할 수 있습니다 .
업데이트 :
statusbar=1
올바른 매개 변수로 설정하면 status=1
나에게 적합합니다.
Google 크롬이 탭 대신 새 창에서 열리려면 메뉴 표시 줄이 없어야합니다.
현재 탭 모드에서 크롬을 새 창으로 열도록하는 자바 스크립트 방법이 없다고 생각합니다. 기본적으로 탭으로 표시되는 팝업 에 티켓이 제출되었습니다 . 그러나 사용자는 왼쪽 상단의 크롬 아이콘을 클릭하고 "탭으로 표시"를 선택할 수 있습니다. 그러면 주소 표시 줄이 편집 가능해집니다.
자바 스크립트 에서 비슷한 질문이 탭이 아닌 새 창에서 열립니다 .
내가 알 수있는 한, localhost를 참조하는 경우 (예 : 로컬에서 사이트를 개발하고 있음) 크롬이 제대로 작동하지 않습니다.
이것은 작동합니다 :
var windowObjectReference;
var strWindowFeatures = "menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes";
function openRequestedPopup() {
windowObjectReference = window.open("http://www.cnn.com/", "CNN_WindowName", strWindowFeatures);
}
이것은 작동하지 않습니다
var windowObjectReference;
var strWindowFeatures = "menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes";
function openRequestedPopup() {
windowObjectReference = window.open("http://localhost/webappFolder/MapViewer.do", "CNN_WindowName", strWindowFeatures);
}
http : //localhost/webappFolder/Landing.do 에서로드 할 때도 작동하지 않습니다 .
var windowObjectReference;
var strWindowFeatures = "menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes";
function openRequestedPopup() {
windowObjectReference = window.open("/webappFolder/MapViewer.do", "CNN_WindowName", strWindowFeatures);
}
window.open ( "", "NAME", ....)을 사용할 때 대상 창에 이름을 입력하지 마십시오.
그렇게하면 한 번만 열 수 있습니다. 대신 _blank 등을 사용하십시오.
나는 같은 문제가 있는데, Chrome은 코드에서 새 창을 열지 않습니다 (처리기가 아님).
이 해결책을 찾았습니다.
setTimeout(function () {
window.open(
url, 'name', 'toolbar=1, scrollbars=1, location=1,
statusbar=0, menubar=1, resizable=1, width=800, height=600'
);
}, 1);
참고 URL : https://stackoverflow.com/questions/2572333/google-chrome-window-open-workaround
'Programing' 카테고리의 다른 글
리프트의 SiteMap (entries : _ *)에서 콜론, 밑줄 및 별표의 의미는 무엇입니까? (0) | 2020.12.09 |
---|---|
JOIN이없는 삶… 이해와 일반적인 관행 (0) | 2020.12.09 |
Arduino는 C 또는 C ++를 사용합니까? (0) | 2020.12.09 |
git 브랜치에서 Maven 아티팩트 버전 파생 (0) | 2020.12.09 |
기본 클래스에서 인터페이스 메서드를 구현할 수있는 이유는 무엇입니까? (0) | 2020.12.09 |