Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jQuery-触发弹出窗口并单击_Php_Jquery - Fatal编程技术网

Php jQuery-触发弹出窗口并单击

Php jQuery-触发弹出窗口并单击,php,jquery,Php,Jquery,我在我的页面的body标签上方有这个-- $(文档).ready(函数(){ $('#按钮')。popupWindow({windowURL:'http://something,中心浏览器:1,宽度:400,高度:300}); }); 有没有一种方法可以让用户在不点击按钮的情况下打开这个弹出窗口——通过编程,在页面加载时使用php将代码插入页面中间?我认为出于安全原因,很多浏览器不会在没有某种用户操作的情况下打开弹出窗口。popupWindow是硬编码的,用于处理链接,并且只响应“单击”事件

我在我的页面的body标签上方有这个--


$(文档).ready(函数(){
$('#按钮')。popupWindow({windowURL:'http://something,中心浏览器:1,宽度:400,高度:300});
});

有没有一种方法可以让用户在不点击按钮的情况下打开这个弹出窗口——通过编程,在页面加载时使用php将代码插入页面中间?

我认为出于安全原因,很多浏览器不会在没有某种用户操作的情况下打开弹出窗口。

popupWindow是硬编码的,用于处理链接,并且只响应“单击”事件。也就是说,如果你想让弹出窗口出现在页面加载上,你可以尝试编辑jquery.popupWindow的第6行

$(this).click(function(){
对此,

$(this).ready(function(){
向body元素添加一个id

<body id="popuptrigger">

这是未经测试的,但即使有效,它也不是一个非常优雅的解决方案。我建议你找一个弹出式插件,让你更灵活。我使用它来加载弹出表单的内部url请求,并可以完全推荐它。不过,您的里程数可能会有所不同,所以请在谷歌上搜索“jquery model”,并查看一些备选方案。

我建议使用一个。这样,您就不必担心不同的浏览器如何以不同的方式处理弹出窗口

$("#button").trigger("click");
或将其全部放在链接线上:

$('#button').popupWindow({...options...}).trigger("click");
无论如何,您可以从未渲染的元素调用它:

$("<div></div>").popupWindow({..options..}).click();
$(“”)。弹出窗口({..options..})。单击();

正如其他人所说,某些浏览器(尤其是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();
//创建一个“假”标记,它将永远不会添加到DOM中。
$('')
//注册一个点击处理程序,它将打开一个新的弹出窗口。
。单击(函数(){
打开(url、名称、选项);
})
//模拟在jQuery中单击-这将打开弹出窗口。
。单击();

我无法对接受的解决方案发表评论,因此我将在这里发布此消息-关于乔纳森·桑普森斯最后一个建议(非常聪明):在最新的Firefox和Chrome上,触发点击事件的元素必须可见。因此,无法真正生成未渲染的元素

此外,如果您正在使用页面中的元素,只需选择一个尚未定义任何其他单击事件的元素,否则将触发所有其他单击事件,这可能不是期望的结果。

$('#按钮')。触发('click')对我不起作用。因此,我尝试了
$('#按钮')。模式('toggle')它适合我。
$("<div></div>").popupWindow({..options..}).click();
// 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();