gpt4 book ai didi

javascript - 如何防止 "my own"javascript代码打开新窗口?

转载 作者:行者123 更新时间:2023-12-04 13:05:14 25 4
gpt4 key购买 nike

这个好难...
我的任务是为用 PHP 制作的大型系统构建一个模块。最重要的规则是我不能接触核心系统的代码,所以我不能修复它的一些错误。
我的模块的主要服务是创建一个自定义文档,该文档不是由系统默认编辑器编辑,而是由我的模块创建的自定义表单。
为了防止用户编辑自定义文档而不是填写表单,我可以将文档设置为 blocked在创作的时候。
但即使文档被阻止,系统也会在新的弹出窗口中打开其默认编辑器,然后显示一条与阻止无关的错误错误消息,并且弄乱了用户的头脑。
我可以通过更改核心代码中的几行在一分钟内解决这个问题,但是我会失去工作。我也不能要求系统的所有者解决这个问题,因为它需要永远的时间(所有者来自公共(public)机构)。
系统函数是这样的:

  • 当用户创建文档时,它会将执行传递给每个模块上的一个函数,因此这些模块可以对文档创建使用react;
  • 该模块接收有关创建的文档的数据并检查其类型是否为自定义文档类型,如果为真则阻止它;
  • 该模块将执行传递回代码系统,代码系统完成创建文档(所以我不能使用 die() 否则根本不会创建文档);
  • 系统打开一个编辑器,以便用户可以将内容放入其中。

  • 所以我有了一个想法,我的模块可以在阻止文档后输出一个带有代码的 javascript 标记,该代码将阻止核心系统创建的 javascript 代码使用 window.open()命令,或至少隐藏此弹出窗口。
    有没有办法用javascript来做到这一点?

    最佳答案

    如果您的代码可以在打开之前运行,您可以覆盖打开:

    const myOpen = window.open;
    let iwanttopen = false:
    window.open = function() {
    if (iwanttoopen) return myOpen(...arguments); // here YOU decide
    }

    关于javascript - 如何防止 "my own"javascript代码打开新窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69840033/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com