2017-06-14 5 views
0

私は以下のコードを使用して新しいウィンドウを開こうとしています。 Google ChromeとFirefoxで正常に動作しますが、IEではウィンドウのマージが行われます。 もし私がuser1からログインすると、新しいウィンドウが開きますが、user2でログインすると新しいウィンドウを開くのではなく、user1のuserセッションをuser2に置き換えます。ここでWindows.open()IEでJavaScriptが動作しません

は、新しいユーザーがシステムにログインしたときに、私はIEのたびに新しいウィンドウを開くようにしたい私のコード

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "name", "var myWindow = window.open('" & pageurl & "','name','titlebar=yes,toolbar=no,directories=no,location=no,status=yes,overflow=hidden;menubar=no,resizable=yes,scrollbars=no,left=0,top=0,width=(screen.availWidth),height= (screen.availHeight)'); myWindow.resizeTo(screen.availWidth, screen.availHeight); ; myWindow.focus(); ", True) 

です。

+0

だから問題はあなたのポップアップが再利用されていることがありますか? – hardkoded

+0

@kblok ..はい...毎回新しいポップアップウィンドウが必要です。 –

+0

私の答えを調べて、それが役に立ったら教えてください。 – hardkoded

答えて

0

pageurl変数が正しくないか、スペースが含まれている可能性があります。 (ところで、どこから取得したのかは明確ではないので、window.location.hrefに変更してください)。

また、代わりにClientScript.RegisterStartupScriptを使用してみてください:

Page.ClientScript.RegisterStartupScript(GetType(), "name", "(js code)", true); 

あなたがRegisterStartupScriptを使用する場合、それは(右のフォームの終了タグの前に)あなたのスクリプトのページで後のすべての要素をレンダリングします。これにより、スクリプトは、ページのDOM内でページ要素を見つけられない可能性なしにページ要素を呼び出したり、参照したりすることができます。あなたがRegisterClientScriptBlockを使用するときに一方

は、スクリプトが右Viewstateタグの後にレンダリングされたが、ページ要素の前に任意のさ。

+0

なぜそれが問題を解決できると思いますか? – hardkoded

+1

@kblokがexplenationsで更新されました。 –

0

window.openの2番目のパラメータは、ウィンドウ名/ idです。同じ名前を残しておけば、そのウィンドウの名前は'name'となり、ウィンドウは再利用されます。私はあなたが_blankを使用することをお勧めします。

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "name", "var myWindow = window.open('" & pageurl & "','_blank','titlebar=yes,toolbar=no,directories=no,location=no,status=yes,overflow=hidden;menubar=no,resizable=yes,scrollbars=no,left=0,top=0,width=(screen.availWidth),height= (screen.availHeight)'); myWindow.resizeTo(screen.availWidth, screen.availHeight); ; myWindow.focus(); ", True) 

参考:https://www.w3schools.com/jsref/met_win_open.asp

関連する問題