JavaScript打开包含自定义网址的新标签ON CLICK正文中的任何位置,但一次刷新

时间:2018-04-28 08:02:45

标签: javascript

每当用户点击网站/正文的任何​​位置时,我都会创建一个JS代码来打开带有自定义网址的新标签页。

代码如下:

<script type="text/javascript">
    function load()
    {
    window.open(
  'https://google.com/',
  '_blank' // <- This is what makes it open in a new window.
);
 }
</script>

<body onclick="load()">

这段代码工作正常,但我希望这个点击功能只发生一次,直到主网站刷新。当新标签页打开时,它不应该是活动的,而主网站应该是活动的。

但是我尝试了<body onclick=" load(); this.onclick=null;">它没有工作..因为,它直接声明它是空的。

我希望我清楚,任何帮助都表示赞赏。

1 个答案:

答案 0 :(得分:2)

所以你有两个问题:

  1. 点击事件仅触发一次,直到主网站刷新
  2. 新标签页不应该生效。
  3. 对于第一个问题:

    <script type="text/javascript">
      function load() {
        document.body.removeEventListener('click', load)
        window.open('https://google.com/', '_blank')
      }
    
      window.onload = function() {
        document.body.addEventListener('click', load)
      }
    </script>

    对于第二个问题:这是不可能的,但你可以打开主网站的页面而不是谷歌:

    <script type="text/javascript">
      function load() {
        // open next page and it will get active
        window.open('https://my.domain.com/next_page', '_blank')
        // Redirect the current tab to google
        location.href = 'https://google.com'
      }
    
      window.onload = function() {
        document.body.addEventListener('click', load)
      }
    </script>

    <强>更新

    联合:

    <script type="text/javascript">
      function load() {
        sessionStorage.setItem('redirected', '1')
        // open next page and it will get active
        window.open('https://my.domain.com/next_page', '_blank')
        // Redirect the current tab to google
        location.href = 'https://google.com'
      }
    
      if (!sessionStorage.getItem('redirected')) {
        window.onload = function() {
          document.body.addEventListener('click', load)
        }
      }
    </script>