ホームページ >ウェブフロントエンド >jsチュートリアル >javascript window.open 新しい window を開いた後に再度ウィンドウを開けなくなる問題の解決策_javascript スキル

javascript window.open 新しい window を開いた後に再度ウィンドウを開けなくなる問題の解決策_javascript スキル

WBOY
WBOYオリジナル
2016-05-16 16:52:321511ブラウズ

システム内ではJavaScriptのオープンウィンドウを使用している箇所があります。たとえば、固定モードのウィンドウを開くと、ユーザーは他の操作を実行できなくなります。

パラメータ:

コードをコピーします コードは次のとおりです。

値の範囲| 説明
alwaysLowered | 指定されたウィンドウはすべてのウィンドウの後ろに隠れます
が閉じられるかどうかに依存します。親ウィンドウ
ディレクトリ | はい/いいえ | Nav2 と 3 のディレクトリ バーが表示されるかどうか | ウィンドウの高さ
ホットキーを設定します。メニューバーなしのウィンドウ
ピクセル値 | ウィンドウ内のドキュメントのピクセルの高さ
位置 |バーが表示されます。
menubar | はい/いいえ | メニュー バーが表示されるかどうか。ウィンドウのサイズ変更可能かどうか (装飾境界線を含む)
screenX ピクセル値 | value | 画面の上端からのウィンドウのピクセル長
scrollbars | ウィンドウにスクロール バーを表示できるかどうか
titlebar | ウィンドウのタイトル バーを表示できるかどうかツールバー | はい/いいえ | ウィンドウのツールバーが表示されるかどうか
z-look がアクティブ化された後に他のウィンドウの上に表示されるかどうか |
例:




コードをコピー


コードは次のとおりです。

window.open("page. html", "新しいウィンドウ", "高さ = 100, 幅 = 100, トップ = 0,左 = 0, ツールバー = いいえ, メニューバー = いいえ, スクロールバー = いいえ, サイズ変更可能 = いいえ , 場所 = いいえ, ステータス = いいえ")
解像度に応じて高さと幅を計算して開きます: コードをコピー
コードは次のとおりです:

var ht = screen.height-98;
var widhh = screen.width - 20;
window.opener = null;window.open("" , "_self"); window.open("Main.aspx", "newwindow" JsGuid(),"height=" ht ", width=" widhh ",depended=yes,top =0,left=0 ,toolbar=no, menubar=no, スクロールバー=yes, resizable=no, location=no, status=yes");
window.close();

そして閉じます元のウィンドウ。

質問:

window.open の後、システムが終了すると、window.open を使用して新しいページを再度開くとエラーが発生します。

長い間グーグルで検索しましたが、見つかりませんでした。この問題は頻繁に発生するものではないと考えると、構成の問題であると考えられます。

その中で、window.open の 2 番目のパラメータが新しいウィンドウの名前であることがわかります。この名前を繰り返すことはできません。

これが繰り返される場合は、このウィンドウを開いて更新し続けてください。

そこで、js のランダム GUID 関数を追加しました。

コードをコピー

コードは次のとおりです。

function s4() {
return Math.floor ((1 Math.random()) * 0x10000)

.toString(16) .substring(1);};function JsGuid() { return s4() s4 () ' -' s4() '-' s4() '-' s4() '-' s4() s4() s4();}
使用: window whenウィンドウを開く .open("Main.aspx", "newwindow" JsGuid());
OK、問題は解決しました。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。