我希望能够通过做某事或在外部设置某些内容来使我在网页中获得的JavaScript表现得与众不同。所以会有逻辑检查是否(某事)执行功能一,否则执行功能二。我可以想到三种方法,但我不喜欢它们中任何一种都可以选择它。至少除非我能看出是否还有另一种令人目眩的明显方式,这种做法现在以某种方式逃避了我。
向URL添加无害的查询字符串(例如?choose_functionality_one = true),我的逻辑可以只查看页面URL。我不喜欢这种情况的原因是我的代码在跨域iframe中运行,我甚至无法访问页面的URL(只有iframe的URL)。是的我可以将查询字符串传递给iframe,但前提是我可以控制父页面,但我没有。
在页面的域中创建一个cookie,我的逻辑可以在document.cookie中查找。这可以通过一个书签很容易地完成,并且不会遇到跨域问题,因为我只是打开一个窗口/选项卡到我的代码运行的域并在该上下文中运行bookmarklet。这是我目前的领跑者选择。
在浏览器的useragent字符串中添加内容并在我的逻辑中查找。在Firefox上通过about:config很容易,但对于其他浏览器则不那么容易,而在Mac上则很难。此外,在某些浏览器上,一旦设置了自定义值,您就无法在获得浏览器更新时自动更新UA。您的UA版本信息会在第一次定制时停留在原来的位置。
任何人都可以想到通过电子邮件/即时消息/电话我可以对某人说“做到这一点”的另一种方式,他们会看到该页面的行为有不同的故障排除目的。对于那些没有这样做的普通人来说,它正常运行。
答案 0 :(得分:1)
最简单的选择似乎是在您的网站上创建一个调试页面,让用户打开/关闭“调试”cookie,然后将常规站点代码排除在cookie的存在之外。我建议让调试cookie在相当短的时间内到期,这样人们就不会无意中将其保留。
这个选项有你感兴趣的优点(没有用户代理修改,适用于所有平台,适用于iframe),我看不出任何缺点,除非如果有人关闭cookie,它将无法工作,尽管很多如果没有cookie,这些天网络将无法运行,因此这似乎是你可以忍受的东西。
此外,它对您的用户来说也是最简单的。您可以将它们指向您网站上的正确页面,他们所要做的就是单击所需的按钮将其打开或关闭。您可以使页面非常自我解释,这肯定比任何其他选项都容易。
好的,如果你只控制代码而没有HTML,那么你可以实现一个键盘快捷键,通过设置cookie来启用调试模式。说明可能是这样的:将键盘焦点放在X中,然后按Ctrl-D。
或者,您可以实现一些特殊类型的点击(例如按住Ctrl键单击某个对象或某些页面角落)。在这种情况下,说明可能是这样的:按住Ctrl键并单击页面上的对象X.
您的JS代码可以实现这些快捷方式中的任何一个。当启用特殊键/单击以确认打开或关闭调试模式时,您甚至可以提示(所有动态创建的HTML对象)。