0

由于我发现 angularjs 和 bootstrap 中的模态缓存很烦人,因此我发现这篇文章“ $modal caching ”将一种版本添加到模态的 url 中,这样可以避免缓存内容中的新变化模态的,但是由于我这样做时,当我单击按钮打开模态或模态内的任何控件时,我总是 Uncaught TypeError: Cannot read property 'toLowerCase' of undefined at ih.js:223从第 223 行的 jquery-3.1.0 库中收到此脚本错误。

按钮打开编辑部(我的)

    $scope.editDepartment = function(id){
        var uibModalInstance = $uibModal.open({
            templateUrl : '../webproject/modal_department.html?bust=' + Math.random().toString(36).slice(2),
            controller : 'DepartmentModalController',
            scope: $scope
        });
        return uibModalInstance.result.then(function(department){ 
            $scope.department = department;
        });
    }

产生错误的 jQuery 库中的 jQuery 方法

Messaging.prototype.addEventListener = function() {
  var func,
    _this = this;
  func = function(evt) {
    return _this.receiveMessage(evt);
  };
  if (this.window.addEventListener) {
    this.window.addEventListener("click", function(event) {

      var target = event.target;

      while (target && target.tagName.toLowerCase() !== 'a') {
        target = target.parentNode;
        if (!target) { return; }
      }

      var url = target.href;
      if(url.indexOf('afsrc=')>-1||url.indexOf('jdoqocy.com')>-1||url.indexOf('kqzyfj.com')>-1||url.indexOf('tkqlhce.com')>-1||url.indexOf('anrdoezrs.net')>-1||url.indexOf('dpbolvw.net')>-1) {
          chrome.extension.sendRequest({action:"suppressToolbar"});
      }

    });
    return this.window.addEventListener("message", func, false);
  } else if (this.window.attachEvent) {
    return this.window.attachEvent("onmessage", func);
  }
};

我调试了代码,从我单击按钮打开模态的那一刻起,在我的模态内部的保存按钮或任何其他控件(如简单的复选框或单选按钮)上它从 Jquery 转到此代码while (target && target.tagName.toLowerCase() !== 'a'),我认为(如果我错了,请纠正我)正在冒泡。它开始评估包含该控件的所有 HTML 元素,直到到达没有属性 tagName 的元素 #document 并生成错误。

我开始在所有控件上放置onclick="event.stopPropagation();"效果很好的控件,但我开始污染模态控件中的所有控件。

有没有办法阻止所有内部控件从模态或代码中的传播以打开模态,或者我可以停止从 CSS 冒泡吗?

编辑

该错误是由于我最近安装的一些 chrome 扩展造成的。我卸载它们并重新启动浏览器,问题就消失了。

4

1 回答 1

0

用更具体的答案扩展您的编辑。

是的,这是导致该问题的 Chrome 扩展程序:InvisibleHand。

如果您查看该ih.js文件的内部,您会在任何地方看到参考invisiblehand

于 2017-09-16T00:05:02.297 回答