2016-06-20 3 views
0

Я пытаюсь создать кнопку, которая откроется в новом окне с помощью кнопки javascript, нажатой пользователем. Кнопка появляется на сайте, но ничего не происходит, когда я нажимаю ее. Я пробовал его в Chrome и Firefox. Я не могу понять, являются ли это настройками браузера или ошибкой кода.Невозможно открыть новое окно с помощью Javascript

<button onclick="window()">Reminisce</button> 

<script type="text/javascript"> 
function window() { 
    var w = window.innerWidth; 
    var h = window.innerHeight; 
    var rw = Math.random()*w)+1); 
    var rh = Math.random()*h)+1); 

    var popup = window.open('http://www.roberthayeskee.com/bush2.html,'_blank','width=rw,height=rh'); 
} 
</script> 

Спасибо!

+0

активирован ли ваш блокировщик всплывающих окон? – Timo

+3

У вас есть синтаксические ошибки в строках, объявляющие 'rw',' rh' и 'popup'. Помимо этого, вы должны переименовать функцию в нечто иное, чем «окно». –

ответ

2

В дополнении к ответу TimoSta, ваш код полон синтаксические ошибок и опечаток. Вы, вероятно, хотите что-то вдоль линий:

https://jsfiddle.net/hsfcc8sp/4/

function openWindow() { 
    var w = window.innerWidth; 
    var h = window.innerHeight; 
    var rw = Math.random()*w+1; 
    var rh = Math.random()*h+1; 

    var popup = window.open('http://www.roberthayeskee.com/bush2.html','_blank','width=' + rw,'height=' + rh); 
} 

Но я должен был изменить много кода ...

+0

Это работало безупречно. Большое спасибо! – TurtleOrRodeo

3

window - глобальный объект, представляющий текущее окно браузера и не может быть перезаписан вашей пользовательской функцией.

При нажатии на кнопку, появляется сообщение об ошибке, подобное должно появиться в консоли браузера в следующем, так как window является объектом, не вызываемая функция:

Uncaught TypeError: window is not a function 

Вы должны переименовать функцию, например, до openWindow.


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

Edit: Как описано в комментариях, кажется, что вы можете перезаписать window объект. Но это еще не означает, что вы должны, и было бы также разбить строки, где вы прочитали внутреннюю высоту/ширину:

var w = window.innerWidth; 
+0

'window' * может * быть перезаписан (к сожалению), но это действительно плохая идея. –

+0

@RickHitchcock Интересно, просто попробовал его в консоли Chrome, и это не сработало. Всегда возвращал обычный объект 'window'. – Timo

+0

См. Https://jsfiddle.net/m11xeLsk/ –

Смежные вопросы