Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript onclick需要两次单击才能打开新选项卡_Javascript_Javascript Events_Onclick - Fatal编程技术网

JavaScript onclick需要两次单击才能打开新选项卡

JavaScript onclick需要两次单击才能打开新选项卡,javascript,javascript-events,onclick,Javascript,Javascript Events,Onclick,我有一段JavaScript,它可以根据特定条件在当前页面上打开一个新选项卡或显示一个弹出覆盖 为了确定要执行的操作,我需要在onclick事件期间向DOM追加两个脚本 在onclick期间追加脚本的原因是元素的点击率低 现在,覆盖行为按预期工作,但当需要打开新选项卡时,需要单击两次而不是一次 下面是onclick事件的代码片段: button_link.onclick = function () { var _this = this; appendScript('http://exam

我有一段JavaScript,它可以根据特定条件在当前页面上打开一个新选项卡或显示一个弹出覆盖

为了确定要执行的操作,我需要在onclick事件期间向DOM追加两个脚本

在onclick期间追加脚本的原因是元素的点击率低

现在,覆盖行为按预期工作,但当需要打开新选项卡时,需要单击两次而不是一次

下面是onclick事件的代码片段:

button_link.onclick = function () {
  var _this = this;
  appendScript('http://example.com/script1.js', function () {
    appendScript('http://example.com/script2.js', function () {

      if (isNewWindow() || fitsDimensions(button_link.offsetHeight) || (script1Val && !script2Val)) {
        // Open a new tab
        button_link.href = button_link.href.replace('false', 'true'); // make sure param is true
        _this.onclick = 'return '+true;
        return true;
      }

      _this.onclick = 'return '+false;

      appendScript(URL_SCHEME+'ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js', function () {
        appendScript('http://example.com/script3.js', function () {
          // Call function from script3.js to create popup overlay
        });
      });

      return false;

    });
  });

  return false;
};

它是按钮还是锚?你改变了它的href属性,所以我猜它是一个锚。This
\u This.onclick='return'+true绝对是错误的。。。使用事件侦听器或至少
。onclick=function
。。。您需要两次单击的原因可能是您的脚本仍在加载。您是正确的,它是一个锚。您可以将脚本附加到悬停。。。这将在click事件之前加载脚本,并且仍然尊重低比率ThingTanks的帮助。事实证明,我无法让它以我想要的方式工作,我怀疑这甚至是不可能的。我确实更改了JavaScript,将脚本附加到了onhover上。