这是我的 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>
在 Controller 中:
$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
from the markup并在您的处理程序中使用它。
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 - Directives like ngClick and ngFocus expose a $event object within the scope of that expression.
关于javascript - 如何在事件不是参数的函数中添加preventDefault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25558812/