是否有可能以某种方式破解window.location.replace
的行为,启动JavaScript功能(让我们说alert
)而不是让用户转到新位置?< / p>
我会给你举个例子,让我们说我们有这个功能:
setTimeout(function(){ window.location.replace("#SOMETHING_HERE#"); }, 900);
当用户点击特定按钮时会触发此操作; #SOMETHING_HERE#
是占位符,管理员可以通过配置面板将URL放在那里。
现在,我们都知道客户很奇怪,我刚刚要求我找到一种方法来启动JavaScript而不是重定向用户,好吧,我被卡住了。当然我应该修改绑定到按钮的功能,但实际上我无法访问代码,唯一的切入点是我之前提到的那个面板,我只能更改#SOMETHING_HERE#
的值。
有人提供了一些关于如何发出警报的线索(&#34; foo&#34;); ?这有可能吗?
答案也可能是&#34; NO&#34;我只是说他们我们必须找到改变代码的方法。
答案 0 :(得分:8)
您可以在字符串前加javascript:
:
setTimeout(function(){ window.location.replace("javascript:alert('hello world!')"); }, 900);
这是有效的,因为location.replace
的规范最终会出现在definition for "navigate",其中说:
- 如果需要,这是尝试获取资源的步骤。跳转到第一个合适的子步骤:
醇>...
如果新资源是其方案为javascript的URL
将任务排队以运行这些&#34; javascript:URL&#34;与导航的浏览上下文的活动文档相关联的步骤: