打开每个新窗口中的每个链接

时间:2015-09-24 07:37:22

标签: javascript html css

我想知道如何打开每个新窗口中的每个链接(而不是标签)。

我有大约4个链接,我使用了以下类型的代码。

<a href="Images\Chapter1.pdf"
onclick="window.open(this.href, 'new window','width=1000,height=600'); return false;">

我有4个链接,上面的代码在某种程度上有效。

当我按下这四个链接中的任何一个时,然后一个新窗口将打开pdf文档但是当我点击第二个链接时,打开的窗口正在将其内容更改为第二个pdf,但我希望有两个新的短片窗口内容但不仅仅是一个新窗口更改它的内容。

(Target =“_ Blank”将在新标签页中打开内容,但不会在新窗口中打开。)

让我知道如何克服这个问题。

2 个答案:

答案 0 :(得分:3)

试试这个(注意在SO的编辑器中不起作用) - 代码将为每个窗口提供一个新名称:

var wins = [];
window.onload = function() {
  var links = document.querySelectorAll(".pdfLink");
  for (var i = 0; i < links.length; i++) {
    links[i].onclick = function() {
      var idx = wins.length;
      wins[idx] = window.open(this.href, 'newwindow' + idx, 'width=1000,height=600');
      return false;
    }
  }
}
<a href="Images\Chapter1.pdf" class="pdfLink">PDF1</a>
<a href="Images\Chapter2.pdf" class="pdfLink">PDF2</a>
<a href="Images\Chapter3.pdf" class="pdfLink">PDF3</a>
<a href="Images\Chapter4.pdf" class="pdfLink">PDF4</a>

如果您想要允许页面打开,即使有弹出窗口阻止程序,请尝试:

var wins = [];
window.onload = function() {
  var links = document.querySelectorAll(".pdfLink");
  for (var i = 0; i < links.length; i++) {
    links[i].onclick = function() {
      var idx = wins.length;
      wins[idx] = window.open(this.href, 'newwindow' + idx, 'width=1000,height=600');
      return wins[idx]?false:true;
    }
  }
}
<a href="Images\Chapter1.pdf" class="pdfLink" target="_blank">PDF1</a>
<a href="Images\Chapter2.pdf" class="pdfLink" target="_blank">PDF2</a>
<a href="Images\Chapter3.pdf" class="pdfLink" target="_blank">PDF3</a>
<a href="Images\Chapter4.pdf" class="pdfLink" target="_blank">PDF4</a>

另请注意,您可以写

    links[i].onclick = function(e) { 
      e.preventDefault();

并删除返回false - 因为我们使用querySelectorAll,所以在同一个浏览器中支持preventDefault

答案 1 :(得分:1)

您正在打开一个名为&#39;新窗口的新窗口&#39;。在第二次单击时,您指定相同的窗口。

如果您在每次通话中使用新名称,则应在单独的窗口中打开。