Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.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 在铬中杀角_Javascript_Angular_Google Chrome - Fatal编程技术网

Javascript 在铬中杀角

Javascript 在铬中杀角,javascript,angular,google-chrome,Javascript,Angular,Google Chrome,我有一些员工通过在两个选项卡中打开我的应用程序来不断破坏东西。如果他们打开一个新标签,我想杀死一个标签。这可能吗窗口.关闭()将不起作用,因为我的选项卡没有自动打开。我想写一个叉子炸弹,但那可能会毁了其他东西。我使用Angular,所以我想一定有一些函数可以调用,比如app.destory函数 有谁有更好的主意吗 我的应用程序只在Chrome上运行,而且永远不会改变,所以特定于Chrome的解决方案对我来说没问题。您可以通过这种方式访问window对象。首先,我们必须创建一个服务。由于Angul

我有一些员工通过在两个选项卡中打开我的应用程序来不断破坏东西。如果他们打开一个新标签,我想杀死一个标签。这可能吗<代码>窗口.关闭()将不起作用,因为我的选项卡没有自动打开。我想写一个叉子炸弹,但那可能会毁了其他东西。我使用Angular,所以我想一定有一些函数可以调用,比如
app.destory
函数

有谁有更好的主意吗


我的应用程序只在Chrome上运行,而且永远不会改变,所以特定于Chrome的解决方案对我来说没问题。

您可以通过这种方式访问window对象。首先,我们必须创建一个服务。由于Angular应用程序不仅设计用于在浏览器中运行,而且设计用于在移动平台、服务器或web工作人员上运行,因此Windows等对象可能不可用

因此,建议的方法是包装这些对象,并通过依赖项注入机制注入它们

import { Injectable } from '@angular/core';

function _window() : any {
   // return the global native browser window object
   return window;
}

@Injectable({
  providedIn: root
})
export class WindowRef {
   get nativeWindow() : any {
      return _window();
   }
}
在我们的组件中,我们可以这样简单地称之为:

import { WindowRef } from './WindowRef';

@Component({...})
class MyComponent {

    constructor(private winRef: WindowRef) {
        // getting the native window obj
        console.log('Native window obj', winRef.nativeWindow);
    }

}
现在创建一个处理newtab操作的函数

function openInNewTab(url) {
  let newTab = this.winRef.open('https://stackoverflow.com/questions/61488800/kill-angular-in-chrome', '_blank');
  newTab.focus(); //=====> Focus new tab

  let currentTab = this.winRef.open("", "_self");
  currentTab.document.write("");
  currentTab.close();

}

我发现在角度上有一个破坏函数:
platformBrowserDynamic().destroy()


只要调用该函数,它就会完全卸载。所有CSS都将停止工作,HTML将冻结。这是一个不错的选择。我只是用一条漂亮的消息冻结了所有内容,并说要关闭窗口。

更好的主意:编写代码,使其在多个选项卡中工作:p。@Monkey我不喜欢这个主意。。。。这很难。。。。我的所有网站都非常依赖于状态,所有状态都存储在localstorage中。你可以用@mario来封装你的应用程序,我已经试过了,我的老板怒气冲冲地说你必须安装一些东西。他们只想要一个浏览器。真遗憾,但我在这里发现了一个与你类似的问题:也许这会适合你,祝你好运。这会让你的账单崩溃。。。这将停止所有处理,但我认为这是一个糟糕的用户体验