gpt4 book ai didi

javascript - 如何从外部影响页面中运行的 JavaScript

转载 作者:行者123 更新时间:2023-11-30 06:03:15 25 4
gpt4 key购买 nike

我希望能够通过在外部执行某些操作或进行某些设置,使我在网页中获得的 JavaScript 表现不同。因此,将进行逻辑检查,如果(某事)执行功能一,否则执行功能二。我可以想到三种方法来做到这一点,但我对其中任何一种都不喜欢,无法选择它。至少不会,除非我能看到是否有另一种非常明显的方法,但目前不知何故逃避了我。

  1. 向 URL 添加一个无害的查询字符串(例如?choose_functionality_one=true),我的逻辑可以简单地查看页面 URL。我不喜欢这种情况的原因是我的代码在跨域 iframe 中运行,我什至无法访问页面的 URL(仅 iframe 的 URL)。是的,我可以将查询字符串传递给 iframe,但前提是我可以控制父页面,但我没有。

  2. 在页面的域中创建一个 cookie,我的逻辑可以简单地在 document.cookie 中查找它。这可以很容易地通过书签来完成,并且不会遇到跨域问题,因为我只需打开一个窗口/选项卡到我的代码运行的域并在该上下文中运行书签。这是我目前的领先选择。

  3. 向浏览器的用户代理字符串添加一些内容,然后在我的逻辑中查找它。通过 about:config 在 Firefox 上相当容易,但在其他浏览器上就没那么容易了,在 Mac 上更是难上加难。此外,在某些浏览器上,一旦您设置了自定义值,您将无法在获得浏览器更新时自动更新 UA。您的用户代理的版本信息与您首次自定义时的版本信息保持一致。

谁能想出另一种方式,通过电子邮件/即时消息/电话我可以对某人说“这样做”,他们会看到页面的行为有所不同以进行故障排除。对于还没有这样做的普通人来说,它运行完全正常。

最佳答案

最简单的选择似乎是在您的站点上制作一个调试页面,让用户打开/关闭“调试”cookie,然后将您的常规站点代码从 cookie 的存在中剔除。我建议让调试 cookie 在相当短的时间内过期,这样人们就不会无意中将其保留。

此选项具有您感兴趣的优点(无用户代理修改,适用于所有平台,适用于 iframe)并且我看不出有任何缺点,除了如果有人关闭了 cookies 它就不会工作,虽然很多如今,如果没有 cookie,网络将无法工作,因此这似乎是您可以接受的事情。

此外,它也是您的用户使用起来最简单的。您只需将他们引导到您网站上的正确页面,他们所要做的就是单击所需的按钮将其打开或关闭。您可以使页面一目了然,这肯定比任何其他选项都容易得多。

好的,如果您只控制代码而不控制 HTML,那么您可以实现键盘快捷键,通过设置 cookie 启用 Debug模式。指令可能是这样的:将键盘焦点放在 X 上,然后按 Ctrl-D。

或者,您可以实现某种特殊类型的点击(例如按住 Ctrl 键并点击某些对象或页面的某个 Angular 落)。在这种情况下,说明可能类似于:按住 Ctrl 键并单击页面上的对象 X。

您的 JS 代码可以实现这些快捷方式中的任何一个。当使用特殊键/单击以确认打开或关闭 Debug模式时,您甚至可以提出提示(全部带有动态创建的 HTML 对象)。

关于javascript - 如何从外部影响页面中运行的 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6967229/

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