javascript視窗開啟後怎麼設定只能操作視窗其他頁面不可動

PHPz
發布: 2023-04-25 13:55:19
原創
775 人瀏覽過

在網頁應用程式開發的過程中,常會用到JavaScript開啟新視窗的方法。但是,有時候我們希望使用者只能操作目前新開啟的窗口,而不能對原始頁面進行任何操作,這時候該怎麼設定呢?

以下是一些實作方法供參考:

方法一:使用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=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()方法停用原始頁面,然後在100毫秒後再重新聚焦視窗。

總結

以上就是控制新開啟的窗口只能操作本窗口,而不能操作原始網頁頁面的方法。不同的方法有不同的優缺點,具體使用時可依實際需求選擇適合的方法。

以上是javascript視窗開啟後怎麼設定只能操作視窗其他頁面不可動的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板