我在页面的body标签上方有这个 -
<script type="text/javascript">
$(document).ready(function() {
$('#button').popupWindow({windowURL:'http://something',centerBrowser:1,width:400,height:300});
});
</script>
有没有办法在没有用户实际点击按钮的情况下使弹出窗口发生 - 在页面加载时使用php以编程方式将代码插入到页面中间?
答案 0 :(得分:2)
接下来添加以下内容。
$("#button").trigger("click");
或者把它全部放在链接线上:
$('#button').popupWindow({...options...}).trigger("click");
对于它的价值,您可以从非渲染元素中调用它:
$("<div></div>").popupWindow({..options..}).click();
答案 1 :(得分:1)
我认为出于安全原因,如果没有某种用户操作,许多浏览器都无法打开弹出窗口。
答案 2 :(得分:0)
popupWindow是硬编码的,可以处理链接,只响应“点击”事件。也就是说,如果你想让弹出窗口显示在页面加载上,你可以尝试从中编辑jquery.popupWindow的第6行;
$(this).click(function(){
到此;
$(this).ready(function(){
为你的身体元素添加一个id;
<body id="popuptrigger">
并调用插件;
$('body#popuptrigger').popupWindow({ ... });
这是未经测试的,但即使它有效,它也不是一个非常优雅的解决方案。我建议寻找一个弹出式插件,让你更灵活。我使用jqModal加载弹出窗体的内部网址请求,并可以完全推荐它。你的里程数虽然有所不同,所以谷歌搜索“jquery modal”并查看一些替代方案。
答案 3 :(得分:0)
我建议使用jQuery UI Dialog。这样您就不必担心不同的浏览器如何以不同的方式处理弹出窗口。
答案 4 :(得分:0)
正如其他人所说,某些浏览器(特别是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();
答案 5 :(得分:0)
我无法对已接受的解决方案发表评论,因此我将在此发布 - 关于 Jonathan Sampsons 最后一个提议(这非常聪明):在最新的Firefox&amp; Chrome触发点击事件的元素必须是可见的。因此,您无法真正生成非呈现元素。
此外,如果您正在使用页面中的元素,只需选择一个尚未定义任何其他点击事件的元素 - 否则将触发所有其他点击事件,这可能不是理想的结果。