File: browser_multiple_popups.html

package info (click to toggle)
firefox 147.0.2-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,683,484 kB
  • sloc: cpp: 7,607,246; javascript: 6,533,185; ansic: 3,775,227; python: 1,415,393; xml: 634,561; asm: 438,951; java: 186,241; sh: 62,752; makefile: 18,079; objc: 13,092; perl: 12,808; yacc: 4,583; cs: 3,846; pascal: 3,448; lex: 1,720; ruby: 1,003; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10; exp: 6
file content (63 lines) | stat: -rw-r--r-- 1,797 bytes parent folder | download | duplicates (22)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<!DOCTYPE html>
<html>
<body>
  <button onclick="openPopups();" id="openPopups">open popups</button>
  <button onclick="openNestedPopups();" id="openNestedPopups">open tested popups</button>
  <button onclick="openPopupAndClick();" id="openPopupAndClick">open popups and click</button>
  <button onclick="closeAllWindows();" id="closeAllWindows">close all windows</button>
  <button onclick="openPopupInFrame();" id="openPopupInFrame">open popup in frame</button>
  <input type="text" id="input" />
  <script>
let windows = [];

function openPopups() {
  windows.push(window.open('empty.html', '_blank', 'width=100,height=100'));
  windows.push(window.open('empty.html', '_blank', 'width=100,height=100'));
}

function openNestedPopups() {
  var w = window.open('empty.html', '_blank', 'width=100,height=100');
  windows.push(w);
  windows.push(w.open('empty.html', '_blank', 'width=100,height=100'));
}

var recursion = false;
function openPopupAndClick() {
  windows.push(window.open('empty.html', '_blank', 'width=100,height=100'));
  if (!recursion) {
    recursion = true;
    document.getElementById("openPopupAndClick").click();
  }
}

function openPopupInFrame() {
  let iframe = document.createElement("iframe");
  iframe.style.display = "none";
  document.body.appendChild(iframe);
  windows.push(iframe.contentWindow.open('empty.html', '_blank', 'width=100,height=100'));
  iframe.remove();
}

function closeAllWindows() {
  windows.forEach(w => {
    try {
      w.close();
    } catch(e) {}
  });
}

if (location.search.includes("openPopups")) {
  let id = setInterval(() => {
    if (document.getElementById('start')) {
      clearInterval(id);
      openPopups();
    }
  }, 500);
}

document.getElementById("input").onmouseup = _ => {
  openPopups();
}
  </script>
</body>
</html>