jQuery - всплывающее окно запуска без клика - PullRequest
1 голос
/ 15 января 2010

У меня есть это выше тега body на моей странице -

<script type="text/javascript">
    $(document).ready(function() {
        $('#button').popupWindow({windowURL:'http://something',centerBrowser:1,width:400,height:300}); 
    });
</script>   

Есть ли способ сделать это всплывающее окно без фактического нажатия пользователем кнопки - программно с кодом, вставленным в середину страницы, с php при загрузке страницы?

Ответы [ 6 ]

2 голосов
/ 16 января 2010

Добавьте следующее следующее.

$("#button").trigger("click");

Или поместите все это в цепочку:

$('#button').popupWindow({...options...}).trigger("click");

Для чего бы это ни стоило, вы можете вызвать это из неотрисованного элемента:

$("<div></div>").popupWindow({..options..}).click();
1 голос
/ 15 января 2010

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

0 голосов
/ 26 ноября 2013

Я не могу комментировать принятое решение, поэтому я просто опубликую это здесь - относительно Джонатана Сэмпсона Последнее предложение (которое действительно умно): на последнем Firefox & Chrome элемент, который вызываетсобытие щелчка, должно быть видно.Таким образом, вы не можете сгенерировать неотрисованный элемент .

Кроме того, если вы используете элемент со своей страницы, просто выберите элемент, для которого еще не определено какое-либо другое событие щелчка - в противном случае все остальные события щелчка будут срабатывать, что может не иметь желаемого результата.

0 голосов
/ 09 ноября 2011

Как утверждают другие, некоторые браузеры (в частности, Microsoft Internet Explorer) откажутся открывать всплывающее окно JavaScript, если оно не было запущено в результате взаимодействия с пользователем. Вы можете легко подделать это с помощью небольшого количества jQuery:

// Create a 'fake' a tag, this will never be added to DOM.
$('<a href="#" />')

    // Register a click handler which will open a new popup window.
    .click(function () { 
        window.open(url, name, options);
    })

    // Simulate the click in jQuery - this will open the popup window.
    .click();
0 голосов
/ 16 января 2010

Я бы предложил использовать jQuery UI Dialog . Таким образом, вам не придется беспокоиться о том, как разные браузеры по-разному обрабатывают всплывающие окна.

0 голосов
/ 15 января 2010

popupWindow жестко запрограммирован для работы со ссылками и реагирует только на события «щелчка». Тем не менее, если вы хотите, чтобы всплывающее окно появлялось при загрузке страницы, вы можете попробовать отредактировать строку 6 jquery.popupWindow из этого;

$(this).click(function(){

к этому;

$(this).ready(function(){

добавить идентификатор к элементу тела;

<body id="popuptrigger">

и вызвать плагин;

$('body#popuptrigger').popupWindow({ ... });

Это не проверено, но даже если это работает, это не очень элегантное решение. Я бы посоветовал поискать всплывающий плагин, который дает вам больше гибкости. Я использую jqModal для загрузки внутренних URL-запросов для всплывающих форм и могу рекомендовать его полностью. Тем не менее, ваш пробег может варьироваться, поэтому сделайте в Google поиск по запросу "jquery modal" и найдите несколько вариантов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...