【问题标题】:Open multiple child windows with one click一键打开多个子窗口
【发布时间】:2015-06-29 14:10:53
【问题描述】:


单击单个按钮时,我试图打开多个子窗口。例如,我有一个标记为“1”的块,当单击它时,会播放一个带有冲击波 Flash 视频的相应子窗口。但是,我希望块 2 和 9 的视频也能播放,因为它们在块 1 旁边。或者,如果我单击 12,也会出现 4、11、13 和 20 的窗口,因为它们围绕着12.

这是我正在使用的网站,可以为您提供更好的想法。

http://alexalmaguer.site90.com/

这是我用来为一个视频显示子窗口的代码。

<a href="1.html," target="ItsAGoodDay" onClick="wopen('1.html', 'ItsAGoodDay', 400, 300); return false;">1</a>

1.html 仅包含一个带有 .swf 的对象标签,以及一些将 .swf 保持在窗口中间的样式。

我还使用我在此网站上找到的预制脚本在子窗口打开时将其置于屏幕中间。我认为这可能也需要改变。

<!--
function wopen(url, name, w, h)
{

  w += 32;
  h += 96;
  wleft = (screen.width - w) / 2;
  wtop = (screen.height - h) / 2;

  if (wleft < 0) {
    w = screen.width;
    wleft = 0;
  }
  if (wtop < 0) {
    h = screen.height;
    wtop = 0;
  }
  var win = window.open(url,
    name,
    'width=' + w + ', height=' + h + ', ' +
    'left=' + wleft + ', top=' + wtop + ', ' +
    'location=no, menubar=no, ' +
    'status=no, toolbar=no, scrollbars=no, resizable=no');

  win.resizeTo(w, h);

  win.moveTo(wleft, wtop);
  win.focus();
}

编辑:由于空间有限,我想我可能只打开所选块左侧和右侧的窗口,而不是顶部和底部的窗口。

【问题讨论】:

  • 所以基本上你需要(x+8).html(x-8.html)(x+1).html(x-1).html,有静态页面吗?
  • 它们是静态的,如果这意味着我认为它的作用。在这种情况下,我将在哪里实现此代码?这需要一个新的 标签吗?抱歉,我是这方面的初学者。
  • onClick 上,您可以调用传递数字(x)的方法,然后此方法将调用wopen 5 次,传递xx-1x+1x-8x+8.html。当然,您需要验证新值 x-1、x+1 等是否存在。人。在有效范围内。
  • 这在标签中会是什么样子?另外,我不知道如何将变量 x 分配给不同的页面。
  • 看看我在下面添加的答案,应该对你有帮助。

标签: javascript html window


【解决方案1】:

这里有一个小脚本可能会对你有所帮助:

<script>
     function myMethod(x){
    alert("Open " + x + ".html");
    if(x-1  > 1) {
        alert("Open " + (x-1) + ".html");
        }
    if(x-8  > 1) {
        alert("Open " + (x-8) + ".html");
    }
    if(x+1  <= 32) {
        alert("Open " + (x+1) + ".html");
        }
    if(x+8  <= 32) {
        alert("Open " + (x+8) + ".html");
    }

     }
</script>

HTML:

<body>
   <a href="#" target="ItsAGoodDay" onClick="myMethod(12)">12</a>
</body>

您可以尝试一下,看看您是否获得了想要的结果。 然后您可以将警报替换为 wopen 传递 html 名称的函数。

【讨论】:

  • 经过一番折腾,我开始让它工作了。非常感谢您带领我朝着正确的方向前进!
  • 很高兴我能帮上忙 :)
【解决方案2】:

要一键打开多个子窗口,请执行以下操作。您只需多次致电您的wopen

function wopen(url, name, w, h) {
w += 32;
h += 96;
wleft = (screen.width - w) / 2;
wtop = (screen.height - h) / 2;

if (wleft < 0) {
    w = screen.width;
    wleft = 0;
}
if (wtop < 0) {
    h = screen.height;
    wtop = 0;
}
var win = window.open(url,
        name,
        'width=' + w + ', height=' + h + ', ' +
        'left=' + wleft + ', top=' + wtop + ', ' +
        'location=no, menubar=no, ' +
        'status=no, toolbar=no, scrollbars=no, resizable=no');

win.resizeTo(w, h);

win.moveTo(wleft, wtop);
win.focus();
}

document.addEventListener('click', function (e) {
    var win1 = wopen();
    var win2 = wopen();
    var win3 = wopen();
    var win4 = wopen();
    var win5 = wopen();
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    • 2023-04-04
    • 2019-08-07
    • 1970-01-01
    相关资源
    最近更新 更多