> 웹 프론트엔드 > 프런트엔드 Q&A > 자바스크립트 창이 열린 후, 창 안의 다른 페이지만 조작 가능하고 이동이 불가능하도록 설정하는 방법은 무엇인가요?

자바스크립트 창이 열린 후, 창 안의 다른 페이지만 조작 가능하고 이동이 불가능하도록 설정하는 방법은 무엇인가요?

PHPz
풀어 주다: 2023-04-25 13:55:19
원래의
802명이 탐색했습니다.

웹 애플리케이션 개발 과정에서 JavaScript를 사용하여 새 창을 여는 경우가 많습니다. 그러나 때때로 사용자가 새로 열린 창만 조작할 수 있고 원본 페이지에서는 어떤 작업도 수행할 수 없기를 바랍니다. 이 경우 어떻게 설정합니까?

다음은 참고용 구현 방법입니다.

방법 1: JavaScript를 사용하여 창을 열 때 매개변수를 추가합니다

첫 번째 방법은 JavaScript를 사용하여 새 창을 열 때 매개변수를 추가하여 제어하는 ​​것입니다. 구체적인 구현 방법은 다음과 같습니다.

window.open(url,name,'height=500,width=500,top=100,left=100,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')
로그인 후 복사

이 코드에서는 window.open 메서드를 사용하여 새 창을 엽니다. 여기서 name은 창 이름이고 url 은 새 창의 주소입니다. 다른 매개변수 중에서 toolbar=no, menubar=no, scrollbars=no, resizing=no, location=no 및 status=no는 각각 도구 모음, 메뉴 표시줄, 스크롤 막대, 크기 조정 버튼, 주소 표시줄 및 상태 표시줄을 숨기는 것을 나타냅니다. window.open方法打开了一个新窗口,其中name是窗口名称,url是新窗口的地址。而其他参数中的toolbar=nomenubar=noscrollbars=noresizable=nolocation=nostatus=no则分别表示隐藏工具栏、菜单栏、滚动条、大小调整按钮、地址栏和状态条。

这样一来,用户在新窗口中只能看到当前页面的内容,其他操作都被禁用了。

方法二:通过JavaScript代码禁用其他页面

第二种方法是在新打开的窗口中,添加JavaScript代码来禁用其他页面。这种方法需要在新打开的页面中添加以下代码:

window.opener.location.href='javascript:;';
로그인 후 복사

这段代码的作用是将原页面的地址修改为javascript:;,这样用户点击原页面的任何链接都无法操作。

此外,还可以添加以下代码,使用户在打开新窗口之后,点击浏览器后退按钮时不能返回原页面:

history.forward();
로그인 후 복사

方法三:通过设置事件禁用其他页面

第三种方法是添加事件,使系统在切换到新打开的窗口时,自动禁用原页面的操作。具体实现如下:

var newpage = window.open("http://www.example.com");
newpage.onfocus = function () {
    window.blur();
    setTimeout(function () { window.focus(); }, 100);
};
로그인 후 복사

这段代码中,我们使用window.open方法打开了一个新窗口,并将它保存在变量newpage中。而newpage.onfocus则是指当用户切换回新窗口时,自动执行的事件。我们通过window.blur()

이렇게 하면 사용자는 새 창에서 현재 페이지의 내용만 볼 수 있으며 다른 작업은 비활성화됩니다.

방법 2: JavaScript 코드를 통해 다른 페이지 비활성화

두 번째 방법은 새로 열린 창에서 다른 페이지를 비활성화하는 JavaScript 코드를 추가하는 것입니다. 이 방법을 사용하려면 새로 열린 페이지에 다음 코드를 추가해야 합니다. 🎜rrreee🎜이 코드의 기능은 원본 페이지의 주소를 javascript:;로 변경하여 사용자가 링크를 클릭할 수 있도록 하는 것입니다. 원본 페이지에서 작동할 수 없습니다. 🎜🎜또한 사용자가 새 창을 연 후 브라우저의 뒤로 버튼을 클릭할 때 원래 페이지로 돌아갈 수 없도록 다음 코드를 추가할 수도 있습니다. 🎜rrreee🎜방법 3: 이벤트를 설정하여 다른 페이지를 비활성화🎜🎜세 번째 방법은 이벤트를 추가하여 새로 열린 창으로 전환할 때 시스템이 자동으로 원본 페이지의 작동을 비활성화하도록 하는 것입니다. 구체적인 구현은 다음과 같습니다. 🎜rrreee🎜이 코드에서는 window.open 메서드를 사용하여 새 창을 열고 이를 newpage 변수에 저장합니다. 그리고 newpage.onfocus는 사용자가 새 창으로 다시 전환할 때 자동으로 실행되는 이벤트를 의미합니다. window.blur() 메서드를 통해 원본 페이지를 비활성화한 다음 100밀리초 후에 창에 다시 초점을 맞춥니다. 🎜🎜요약🎜🎜위는 새로 열린 창을 제어하여 원래 웹 페이지가 아닌 해당 창만 작동하도록 제어하는 ​​방법입니다. 다양한 방법에는 서로 다른 장점과 단점이 있습니다. 이를 사용할 때 실제 필요에 따라 적절한 방법을 선택할 수 있습니다. 🎜

위 내용은 자바스크립트 창이 열린 후, 창 안의 다른 페이지만 조작 가능하고 이동이 불가능하도록 설정하는 방법은 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿