2017-01-11 7 views
0

В Internet Explorer, когда я нажимаю ссылку во второй раз, окно уже открыто, но оно не сфокусировано. Он отлично работает в 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

Это лучшая ставка, добавить

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

на страницах открытого предполагающих нет другого OnLoad, если есть один уже, добавить window.focus() к этому вместо

Если страница, которую вы хотите открыть 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 страницы открыты – jenny

0

на всплывающем окне добавить:

<body onload="FocusWindow()"> 

Ad d эта функция для файла JavaScript, на который ссылается во всплывающем окне.

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

Справочная информация о том, почему это происходит: https://support.microsoft.com/en-us/kb/979954

В принципе вы не можете сосредоточиться окно из другого окна, вы можете сосредоточиться только из окна вы хотите, чтобы сосредоточиться, да, вы прочитали правильно.

Таким образом, мое обходное решение использует эту ошибку, поскольку она фокусирует себя на нагрузке.

+0

Когда у меня была эта проблема, я считаю, что это был единственный способ заставить ее работать вообще. Встроенная функция, относящаяся к JS в другом файле. Это было после многих попыток. Возможно, твои работы тоже, но я знаю, что это так. –

+0

JS должен быть отдельным файлом, я знаю, что это звучит глупо, но это IE, о котором мы говорим. –