如何在事件不是参数的函数中添加preventDefault

How to add preventDefault in a function where event is not the param

本文关键字:函数 添加 preventDefault 参数 事件      更新时间:2023-09-26

这是我的angularjs应用程序的html部分:

<a href="https://www.youtube.com/watch?v=cRa8VRM5d5c" ng-click="createTab('https://www.youtube.com/watch?v=cRa8VRM5d5c');" title="youtube">youtube</a>

控制器中:

$rootScope.createTab = function(url) {
    if (isExtension !== undefined) {
        chrome.tabs.create({url: (url)});
    } else {
        e.preventDefault();
        window.open(url,'_blank');
    }
}

如何添加对preventDefault的支持?'"e"没有定义,但我需要"e",而且我已经有一个参数要传递……这是一个chrome应用程序,但它也像迷你网站一样可用。我希望在一个新的选项卡中打开链接,即使我们没有使用chrome。

您可以从标记传入$event并在处理程序中使用它。

ng-click="createTab('https://www.youtube.com/watch?v=cRa8VRM5d5c', $event);"

$rootScope.createTab = function(url, event) {
    event.preventDefault();
    if (isExtension !== undefined) {
        chrome.tabs.create({url: (url)});
    } else {
        e.preventDefault();
        window.open(url,'_blank');
    }
}

$event-像ngClick和ngFocus这样的指令在该表达式的范围内公开$event对象。