- When using window.open(), if the new window freeze so too does the parent
- How to have Windows re-open active windows and programs on reboot
- There is a way to have all your open windows and program re-open after a reboot, and here’s how to do it.
- Различия в поведении window.open в разных браузерах
- 1. Вызов без параметров
- 2. Размеры окна
- 3. Позиционирование
- 4. Элементы интерфейса
- Проверить свой браузер
- Safari
- Окончанние
When using window.open(), if the new window freeze so too does the parent
Pretty simple question, really. I’ve looked everywhere for someone with the exact issue I’m having with no luck.
In tab «A» I call window.open() . The new tab (tab «B») begins to load and its script contains some ajax. The ajax call it makes takes a very long time (this is intentional for now as I am attempting to handle a lengthy ajax call). When tab «B» freezes after a little more than 10 seconds so too does tab «A».
I’ve tried calling window.open(«url», «_blank»); as well as window.open(«url»); and neither seems to solve the problem.
To make things more confusing I tried the experiment such that tab «B» opens, ajax doesn’t timeout and everything works fine. Then I change the URL parameters in tab «B» (this is what sends database parameters through ajax and is the cause of the lengthy request) and when it times out as expected it still freezes window «A».
I’m sure I’m missing something. What does tab «B» have to do with tab «A» after the window.open() call has completed. I don’t understand how they are still tied to each other. While all of this is going on other tabs work just fine.
For the record I’m using Chrome on a Mac but saw a similar «quantum entanglement,» let’s call it, in Safari as well.
Also, both pages use the DataTables jQuery plugin. It’s in the API that the ajax calls are being made. I can’t imagine how DataTables could be the culprit here, though.
How to have Windows re-open active windows and programs on reboot
There is a way to have all your open windows and program re-open after a reboot, and here’s how to do it.
Today’s Best Tech Deals
Picked by PCWorld’s Editors
Top Deals On Great Products
Picked by Techconnect’s Editors
Jackie asked why her PC isn’t able to re-open all her active windows and programs after a reboot like it does on the Mac.
As a PC and Mac user I’ve also experienced this phenomenon, and it’s odd why Microsoft doesn’t provide this as an option. When you restart a Mac it asks you if you want all your open windows and programs to launch after reboot, making it quite easy to resume working after an update is installed. This normally isn’t that big of a deal on the Windows platform, but with Windows 10 a lot of users are experiencing unplanned reboots due to how Microsoft’s mandatory updates.
Though there’s not a way outside of installing third-party software to automatically resume a session after a reboot, I can show you (and Jackie) a few tricks to make your favorite programs open after a reboot along with any open Explorer Windows.
[Have a tech question? Send your query to answer@pcworld.com.]
1. First, there’s an option within Windows that will automatically open any Explorer windows you had open previously. To check this setting just open Control Panel and click File Explorer Options. In the View tab make sure the box labeled Restore previous folder windows at logon is checked. This will re-open any Explorer windows you have open in the event of a reboot.
This option within Windows allows you to resume working with files and folders after a reboot.
2. With your Windows Explorer windows handled, it’s time to turn to open programs. Unfortunately, the only way I know how to do this without turning to a piece of software is to simply add any programs you want to start automatically to the Windows Startup folder. It’s not the most elegant solution, but it works great with a web browser along with the «continue where I left off» setting for opening a new browser window. Firefox and IE offer this option as well.
With that in place, open any Explorer window or open the Run command and type Shell:startup without any spaces to open the Startup folder. You can also manually navigate to C: > Users > Profilename > AppData > Roaming > Microsoft > Start Menu > Programs > Startup.
Don’t bother navigating Microsoft’s archaic file structure; just open an Explorer window and type «shell:startup»
When that window appears, or is opened, whatever links to programs you drag into that folder will automatically start with Windows. I only have Google Chrome in mine, and combined with the above settings it allows me to reboot my PC at any time and have my browser appear just as I left it.
I know this solution isn’t perfect, as it won’t automatically open any programs you were using, but it’s as good as I can figure out. If you have any additional tips, please share them by writing to answer@pcworld.com.
Josh Norem is a freelance technology writer based in the San Francisco Bay Area.
Различия в поведении window.open в разных браузерах
При разработке одного сайта столкнулся с необходимостью проверить работу функции window.open в разных браузерах. Результаты решил оформить и выложить, глядишь кому понадобится, а кто и дополнит, что ещё лучше…
Для тестирования использовались: FireFox 3 beta 3, Netscape Navigator 9, Internet Explorer 6, Opera 9 и Konqueror 3.5 (тест Safari отдельно, в конце топика). При этом FireFox 3 тестировался в двух конфигурациях: по умолчанию и c TabMixPlus (с разрешением открывать popup-ы в новых окнах). Рабочая среда: KDE 3.5 на Debian.
1. Вызов без параметров
FireFox 3 (TMP)
Открыл полноразмерное окно, развернутое на весь экран (как и родительское).
FireFox 3
Открыл новую вкладку.
Navigator 9
Открыл полноразмерное окно, развернутое на весь экран (как и родительское).
Opera 9
Открыла новую вкладку.
IE 6
Открыл полноразмерное окно, развернутое на весь экран (как и родительское).
Konqueror
Открыл окно с размером по умолчанию (родительское окно было развёрнуто на весь рабочий стол).
2. Размеры окна
FireFox 3 (и с TMP и без)
Открыли окно с областью просмотра 640×480 пикселей. В окне отображается строка состояния и адресная строка (неактивная).
Само окно превышает заданный размер за счёт строки состояния, адресной строки, заголовка и границ окна. Размеры окна изменяемы.
Navigaror 9 и Konqueror
Открыли окно с областью просмотра 640×480 пикселей. Само окно превышает заданный размер за счёт заголовка и границ окна.
Размеры окна изменяемы.
Opera 9
Открыла окно с областью просмотра 640×480 пикселей. Само окно превышает заданный размер за счёт заголовка и границ окна.
Так же в коне присутствует небольшая панель, при нажатии разворачивающаяся в панель навигации. При этом сокращается область просмотра, а размеры окна не меняются. Размеры окна изменяемы (имеется ввиду пользователем, при помощи мыши).
IE 6
Открыл окно с областью просмотра 640×480 пикселей. Само окно превышает заданный размер за счёт заголовка и границ окна. Размеры окна НЕ изменяемы.
Теперь я задал окну размеры, заведомо превышающие разрешение монитора.
FireFox 3, Navigator 9, Konqueror
Открыли окно, развёрнутое на весь рабочий стол. В FF3 в окне отображается строка состояния и адресная строка (неактивная).
Opera 9
Открыла новую вкладку.
IE 6
Открыл окно, закрывшее собой весь экран, включая все панели (задач, меню и т.д.). Заголовок окна за пределами экрана.
Выводы
- Все браузеры расценивают заданный размер как размер области просмотра.
- Реальные размеры окна всегда больше заданных, причём разница варьируется для разных браузеров, за счёт наличия дополнительных панелей.
- В Internet Explorer 6 нельзя вручную изменить размеры окна. Кстати, это правильное поведение window.open, т.к. все параметры, не указанные в вызове этой функции должны считаться равными «no» (включая resizable). Хотя это и не всегда удобно с точки зрения пользователя.
- Необходимо следить за размером открываемого окна, т.к. при большом размере в IE6 оно может перекрыть пользователю весь рабочий стол
3. Позиционирование
Следующие на очереди — координаты окна. Для этого существуют две пары свойств — left и top в IE и screenX и screenY для NN.
Поочерёдно я попробовал каждую пару во всех браузерах.
window.open(‘http://www.w3.org/’, ‘popup’, ‘width=320,height=240,left=50,top=50’);
FireFox 3, Navigator 9, IE6, Konqueror
Все четыре браузера поняли свойства left и top и спозиционировали окно относительно верхнего левого угла экрана.
Не смотря на эту точку отсчёта, ни один из браузеров, при top = 0 не смог перекрыть окном панель меню.
Opera 9
Тоже поняла свойства left и top, но позиционировала окно относительно своей панели вкладок (отсчёт идёт от нижнего края).
window.open(‘http://www.w3.org/’, ‘popup’, ‘width=320,height=240,screenX=50,screenY=50’);
Эти свойства поняли только Gecko-барузеры (FF и NN), Opera и IE их проигнорировали.
Интересно поведение при попытке задать позицию явно превышающую размеры экрана.
window.open(‘http://www.w3.org/’, ‘popup’, ‘width=320,height=240,left=2000,top=1000’);
FireFox 3, Navigator 9, Opera
Открыли окно в нижнем правом углу рабочего стола (Opera — своей рабочей области). Окно видно целиком. Панели не перекрыты.
Konqueror
Окрыл окно в верхнем левом углу рабочего стола. Панели не перекрыты.
IE6
Проверить не удалось. IE просто переставал открывать окна до принудительного снятия процесса.
Выводы
- Для позиционирования окна следует использовать свойства left и top, т.к. их понимают все барузеры.
- Opera позиционирует окна не относительно экрана, а относительно своей панели вкладок.
- Лучше стараться избегать ситуаций когда окно не поместится на рабочем столе, т.к. поведение браузеров разнится.
4. Элементы интерфейса
Последними я проверил управление элементами интерфейса (исключив элементы, специфичные для конкретного браузера):
- location — поле для набора URL
- menubar — панель меню
- scrollbars — полосы прокрутки
- status — строка состояния
- toolbar — панель с кнопками Back, Forward, Reload и т.д.
Каждый параметр пробовался как со значением yes, так и no.
FireFox 3
- location — отображается всегда и всегда неактивно, параметр игнорируется
- menubar — отображается главное меню
- scrollbars — появляются полосы прокрутки
- status — игнорируется, строка состояния показывается всегда
- toolbar — строка URL страла активной, появилась панель вкладок и дополнительные панели (WebDeveloper)
Navigator 9
- location — отображается неактивным. Дополнительно отобразилась одна из панелей инструментов (WebDeveloper)
- menubar — отображается главное меню
- scrollbars — появляются полосы прокрутки
- status — появляется строка состояния
- toolbar — строка URL страла активной, появилась панель вкладок и дополнительные панели (WebDeveloper)
Opera 9
- location — отображается активное поле ввода и кнопки «Назад», «Вперёд» и т.д.
- menubar — игнорируется
- scrollbars — появляются полосы прокрутки
- status — игнорируется
- toolbar — игнорируется
IE 6
- location — отображается активное поле ввода, главное меню и кнопки «Назад», «Вперёд» и т.д.
- menubar — отображается главное меню
- scrollbars — появляются полосы прокрутки
- status — появляется строка состояния
- toolbar — отображается главное меню и панель инструментов
Konqueror
- location — отображается всегда и всегда неактивно, параметр игнорируется
- menubar — отображается главное меню и панель инструментов
- scrollbars — появляются полосы прокрутки
- status — появляется строка состояния
- toolbar — отображается главное меню и панель инструментов
Выводы предоставляю делать самим. Хотя на мой взгляд, IE здесь демонстрирует более правильную реализацию функции window.open.
Проверить свой браузер
Safari
(спасибо qnick)
Safari 3.0.4 (5523.15), mac os 10.5.2
От галочки «Блокировать всплывающие окна» поведение не меняется абсолютно. Если ссылки жать вместе с яблоком (принудительное открытие окна в новой вкладке), то все равно появляются новые окна.
Без параметров: размеры по умолчанию, позиция на 32 пикселя (примерно, на глаз) ниже и правее текущего окна (но если нижняя граница текущего окна очень близко находится от нижней границы экрана, то у нового окна top=0), тулбар, скролл и статусная строка в наличии, окно тянется во все стороны
Размеры 640х480: исчезли тулбар, скролл и статусная строка, окно перестало тянуться. Позиция на 32 пикселя ниже и правее текущего (или top=0, см. выше), размеры 640х480 + 32 пиксела заголовка.
Очень большой размер: размер изменился на 1440х900 (разрешение экрана), top=0 независимо от положения текущего окна. Все остальное по прежнему.
Позиционирование: отсчет идет от верхнего левого угла минус меню, т.е.
В стиле Netscape: то же самое
Вне рабочего стола: left=0, top=0
Location: появилась адресная строка и тулбар, скролла нет, размеры менять нельзя.
Menubar: игнорируется, т.е. аналогично размеру 640х480.
Scrollbars: то же, что и размер 640х480, но появился вертикальный скролл
Status: то же, что и размер 640х480, но появился статусбар.
Toolbar: то же, что и location.
Окончанние
Будет очень здорово, если кто-нибудь дополнит тестами на других браузерах и платформах, в первую очередь конечно в Ineternet Explorer 7 под Windows.