2017-01-11 5 views
0

Internet Explorerで2回目のリンクをクリックすると、ウィンドウはすでに開いていますが、フォーカスはありません。 ChromeとFirefoxで正常に動作します。次のコードで :
Internert Explorer window.openが最初のクリック後にピントが合わない

function open_page(url, name, features) { 
 
    var win = open(url, (name == null ? 'page' : name), (features == null ? 'menubar=1,toolbar=1,scrollbars=1,width=1024,height=768,resizable=1' : features)); 
 
    if (win == null) { 
 
    alert('Can not open'); 
 
    } else { 
 
    document.isUnloading = false; 
 
    win.focus(); 
 
    } 
 
}
<input type="image" id="pdf" name="pdf" style="padding: 2px; background-color: white; border: 1px dotted white;" title="PDF" src="/images/buttons/pdf.png" alt="PDF" onclick="open_page('http://www.w3schools.com'); return false;" onmouseover="document.getElementById('pdf').style.border='1px solid #a0a0ff'; document.getElementById('pdf').style.backgroundColor='#f0f0ff';" 
 
onmouseout="document.getElementById('pdf').style.border='1px dotted white'; document.getElementById('pdf').style.backgroundColor='white';">

+0

あなたは唯一の質問ではありません:http://stackoverflow.com/questions/27898232/function-window-focus-doesnt-work-in-ie-8-9-10-11 - 私はいくつか答えた数年前。 – mplungjan

答えて

0

例1これは、同じ起源に動作しなくべきではないかもしれ

var win; 
function open_page(url, name, features) { 
    name = name || 'page'; 
    if (win && !win.closed) window.open(url,name).focus(); 
    else { 
    win = open(url,name, (features == null ? 'menubar,toolbar,scrollbars,width=1024,height=768,resizable' : features)); 
    if (win == null) { 
alert('Can not open.'); 
    } else { 
     document.isUnloading = false; 
     win.focus(); 
    } 
    } 
} 

例2

これは、より良い賭けである、あなたは1がすでに存在する場合、開きたいページがある場合は、その代わりに

window.focus()を追加し、他のonloadイベントが存在しないと仮定すると開くページに

<script>window.onload=function() { window.focus() }</script> 

を追加

<body onload="FocusWindow()"> 

広告:PDF、ポップアップページの追加]を

<script>window.onload=function() { window.focus() }</script> 
<iframe height="100%" width="100%" src="yourpdfpage.pdf"></iframe> 
+0

私はどこにwindow.onloadを追加するのか分かりません – jenny

+0

新しいページのスクリプトで - 私の更新を参照してください – mplungjan

+0

しかし、最初のページは新しいタブで開き、2度目のクリックでは同じタップで開きます。最終的には2ページ開けた – jenny

0

を使用この機能は、ポップアップウィンドウで参照されるJavaScriptファイルに適用されます。

function FocusWindow() { 
window.focus(); 
} 

これがなぜ起こるかの背景情報:基本的にはあなたが別のウィンドウからウィンドウにフォーカスすることはできません https://support.microsoft.com/en-us/kb/979954

、あなただけピントを合わせたいウィンドウから集中することができます、はい、あなたはそれを読んで右。

私の回避策では、このバグを利用して負荷を集中させています。

+0

この問題が発生したとき、私はこれがまったく動作する唯一の方法だと私は信じています。別のファイルでJSを参照するインライン関数。これはたくさんの試みの後であった。多分あなたの作品も私が知っている私は知っている。 –

+0

JSは別ファイルにする必要がありますが、私はそれが愚かに聞こえることを知っていますが、私たちはここで話しています。 –

関連する問題