質問編集履歴
3
タグ追加
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|
2
説明不足の指摘あり
test
CHANGED
File without changes
|
test
CHANGED
@@ -7,35 +7,90 @@
|
|
7
7
|
現在IEモードで使用しておりEdgeへの移行作業中です。
|
8
8
|
|
9
9
|
IEで使用時はjavascriptでwindow.open()を使用し、ログイン画面を最大化、戻るボタンやツールバーなどを非表示とし、Webシステムというよりはwindowsアプリのような見せ方をしていました。
|
10
|
+
|
11
|
+
以下、WebForm1.aspxファイルの中身です。
|
12
|
+
(aspxタグだと色がつかないのでjavascriptタグで記載します)
|
13
|
+
|
10
14
|
```javascript
|
15
|
+
// WebForm1.aspx
|
16
|
+
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication5.WebForm1" %>
|
17
|
+
|
18
|
+
<!DOCTYPE html>
|
19
|
+
|
20
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
21
|
+
<head runat="server">
|
22
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
23
|
+
<title></title>
|
24
|
+
<script type="text/javascript">
|
25
|
+
function OnLoad() {
|
11
|
-
// 実際に有効な画面サイズ
|
26
|
+
// 実際に有効な画面サイズ
|
12
|
-
var ash = window.screen.availHeight;
|
27
|
+
var ash = window.screen.availHeight;
|
13
|
-
var asw = window.screen.availWidth;
|
28
|
+
var asw = window.screen.availWidth;
|
29
|
+
|
30
|
+
url = 'WebForm2.aspx';
|
31
|
+
// スクリプトでWebForm2をオープン
|
32
|
+
// 画面サイズとツールバーなどの見た目を制御するため
|
14
|
-
newWin = window.open(url, '
|
33
|
+
newWin = window.open(url, 'child', 'toolbar=0,location=0,menubar=0,status=1,scrollbars=1,resizable=1');
|
15
|
-
newWin.moveTo(0, 0)
|
34
|
+
newWin.moveTo(0, 0)
|
16
|
-
newWin.resizeTo(asw, ash);
|
35
|
+
newWin.resizeTo(asw, ash);
|
36
|
+
}
|
37
|
+
function OnForceClose()
|
38
|
+
{
|
39
|
+
var w = window.open("about:blank", "_self");
|
40
|
+
w.opener = window;
|
41
|
+
// edgeではCloseされません!閉じずにこの画面が残ります
|
42
|
+
w.close();
|
43
|
+
}
|
44
|
+
</script>
|
45
|
+
</head>
|
46
|
+
<body onload="Javascript: OnLoad(); OnForceClose();">
|
47
|
+
<form id="form1" runat="server">
|
48
|
+
<div>
|
49
|
+
</div>
|
50
|
+
</form>
|
51
|
+
</body>
|
52
|
+
</html>
|
53
|
+
|
17
54
|
```
|
55
|
+
以下はopen.windowで開いたWebForm2.aspxファイルの中身です
|
18
|
-
|
56
|
+
クリックイベント用にボタンをひとつ配置しています。
|
57
|
+
|
19
58
|
```javascript
|
59
|
+
// WebForm2.aspx
|
60
|
+
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="WebApplication5.WebForm2" %>
|
61
|
+
|
62
|
+
<!DOCTYPE html>
|
63
|
+
|
64
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
65
|
+
<head runat="server">
|
66
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
67
|
+
<title></title>
|
68
|
+
</head>
|
69
|
+
<body>
|
20
|
-
|
70
|
+
<form id="form1" runat="server">
|
71
|
+
<div>
|
21
|
-
|
72
|
+
</div>
|
73
|
+
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
|
22
|
-
|
74
|
+
</form>
|
75
|
+
</body>
|
76
|
+
</html>
|
23
77
|
```
|
24
|
-
で、閉じることができ、閉じてもwindow.openで開いた子ウィンドウに影響はないので、子ウィンドウがメインとなってシステムが動く状態です。
|
25
78
|
|
26
|
-
|
79
|
+
IEではこのコードでWebForm1を閉じることができ、閉じてもWebForm2に影響はなく、WebForm2がメインとなってシステムが動くイメージです。
|
27
80
|
|
81
|
+
今回Edgeへの移行の際、window.open()で開いたウィンドウしかスクリプトでは閉じることができない(スクリプトで開いたものしかスクリプトで閉じられない)ことがわかり、呼び出し元のWebForm1が残るのは許容することにしました。
|
82
|
+
|
28
|
-
しかし、
|
83
|
+
しかし、WebForm2が開いた状態でWebForm1を先に手動で閉じるとWebForm2のセッションが切れるようで、WebForm2でボタンクリックなどイベント操作を行うと
|
84
|
+
(WebForm1が表示されているEdgeを閉じてWebForm2のボタンをクリックする)
|
29
85
|
|
30
86
|
> 申し訳ございません。このページに到達できません
|
31
87
|
> localhost により、接続が拒否されました。
|
32
|
-
|
33
88
|
|
34
89
|
というエラー画面が表示されるようになりました。
|
35
90
|
IEでは親ウィンドウを閉じても子ウィンドウに影響はなかったのですが、
|
36
91
|
Edgeでは仕様上、無理なのでしょうか?
|
37
92
|
何か方法があると助かるのですが・・・。
|
38
|
-
(後ろに隠れている呼び出し元ウィンドウが何かのはずみで前に出てきた時に、邪魔なので閉じたところ、その後子ウィンドウでエラーが発生し気が付いた次第です)
|
93
|
+
(後ろに隠れている呼び出し元ウィンドウが何かのはずみで前に出てきた時に、邪魔なので閉じたところ、その後子ウィンドウで画面操作を行うとエラーが発生し気が付いた次第です)
|
39
94
|
|
40
95
|
ちなみに開発環境(VisualStudio)でのみの検証です。
|
41
96
|
ですのでlocalhostでIISExpressで動かしています。
|
1
不適切なタグの削除
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|