После того, как я открою окно с помощью window.open, могу ли я изменять его размеры по своему желанию?

#javascript #resize #window

#javascript #изменение размера #окно

Вопрос:

Я понимаю, что большинство браузеров блокируют изменение размера окна, но мне было интересно, поскольку я являюсь родителями этого вновь открытого окна, будут ли у меня какие-либо привилегии изменять его размер не только при открытии, но и после?

Я также не пытаюсь раздражать пользователей 🙂 Мне особенно нужно синхронизировать 2 окна (одинакового размера).

Комментарии:

1. В настоящее время в большинстве браузеров изменение размера окна отключено.

Ответ №1:

Да, у вас есть контроль, вот пример с этого сайта:

http://www.javascriptkit.com/javatutors/advwin4.shtml

 <script type="text/javascript">
var mylocation="../index.shtml"
var winheight=100
var winsize=100
var x=5

function go(){
  win2=window.open("","","scrollbars")

  if (!document.layersamp;amp;!document.all){
    win2.location=mylocation
    return
  }

  win2.resizeTo(100,100)
  win2.moveTo(0,0)
  go2()
}

function go2(){
  if (winheight>=screen.availHeight-3)
  x=0
  win2.resizeBy(5,x)
  winheight =5
  winsize =5

  if (winsize>=screen.width-5){
    win2.location=mylocation
    winheight=100
    winsize=100
    x=5
    return
  }

  setTimeout("go2()",50)
}

</script>
<a href="javascript:go()" onMouseover="window.status='open window';return true" onMouseout="window.status=''" >Open window</a>
  

Комментарии:

1. Что ж, я думаю, мне просто повезло, что мне довелось протестировать в Opera и Chrome — двух браузерах, где это не работает 🙂

2. кто-нибудь знает способ, которым Chrome и opera учитывают это? (Я предполагаю, что они приняли решение «не раздражать пользователя» и отключили эту функциональность)

3. Попробуйте прочитать этот сайт: howtocreate.co.uk/perfectPopups.html — в нем много связанной информации — разные браузеры, изменение размера и перепозиционирование

Ответ №2:

Второй параметр window.open метода позволяет вам указать имя окна, поэтому я предполагаю, что вы сможете изменять размер окна с помощью JavaScript, ссылаясь на окно по имени, после того, как окно было открыто, да.

Я не слишком разбираюсь в JavaScript, поэтому не могу сразу предоставить письменный пример, но теоретически это должно быть возможно.

Ответ №3:

Да, вы могли бы установить переменную feature, чтобы окно могло изменять размер. Оставьте 2-й параметр, название окна, прежним. Открытое окно будет обновлено.

Взгляните сюда: Ссылка практически вся функциональность window.open описана в этой статье.

Итак, что-то вроде:

 window.open ("www.example.com", "mywindow","width:100,height:100");

//something happens here, so you need to resize the window

window.open ("www.example.com", "mywindow","width:250,height:250");
  

Комментарии:

1. Дело в том, что мне нужно изменить размер окна с помощью javascript.

2. winHandle.resizeTo(600,400).. за исключением того, что resizeTo не работает в большинстве браузеров. Если я смогу заставить это работать хотя бы в FF и IE, это было бы началом.

3. @Mike — Я верю, что это может сработать. Второй параметр в .open() — это название окна. Если вы оставите это имя прежним и откроете другое окно, новое содержимое откроется в уже открытом окне (с этим именем). Придайте ему новую высоту и ширину и откройте его снова. (Хотя я не знаю, каковы ваши требования).

4. В списке свойств следует использовать знаки равенства, а не двоеточия, т.е. width=100,height=100 и не width:100;height:100 .